useQuery<T> function
QueryResult<T>
useQuery<T>({
- required List queryKey,
- required QueryFetcher<
T> fetcher, - Duration? staleTime,
- Duration? cacheTime,
- bool enabled = true,
- int? retry,
- RetryDelayFn? retryDelay,
- RetryWhenFn? retryWhen,
- bool? refetchOnWindowFocus,
- bool? refetchOnReconnect,
- Duration? refetchInterval,
- void onSuccess(
- T data,
- List key
- void onError(
- Object error,
- StackTrace st,
- List key
- void onSettled(
- T? data,
- Object? error
- T? initialData,
- T select(
- T data
- bool keepPreviousData = false,
A hook that subscribes to a query and returns its current state.
Implementation
QueryResult<T> useQuery<T>({
required List<dynamic> queryKey,
required QueryFetcher<T> fetcher,
Duration? staleTime,
Duration? cacheTime,
bool enabled = true,
int? retry,
RetryDelayFn? retryDelay,
RetryWhenFn? retryWhen,
bool? refetchOnWindowFocus,
bool? refetchOnReconnect,
Duration? refetchInterval,
void Function(T data, List<dynamic> key)? onSuccess,
void Function(Object error, StackTrace st, List<dynamic> key)? onError,
void Function(T? data, Object? error)? onSettled,
T? initialData,
T Function(T data)? select,
bool keepPreviousData = false,
}) {
final context = useContext();
final client = QueryClient.of(context);
final defaults = client.defaultOptions;
final options = useMemoized(
() => QueryOptions<T>(
key: queryKey,
fetcher: fetcher,
staleTime: staleTime ?? defaults.staleTime,
cacheTime: cacheTime ?? defaults.cacheTime,
enabled: enabled,
retry: retry ?? defaults.retry,
retryDelay: retryDelay ?? defaults.retryDelay,
retryWhen: retryWhen ?? defaults.retryWhen,
refetchOnWindowFocus:
refetchOnWindowFocus ?? defaults.refetchOnWindowFocus,
refetchOnReconnect: refetchOnReconnect ?? defaults.refetchOnReconnect,
refetchInterval: refetchInterval ?? defaults.refetchInterval,
onSuccess: onSuccess,
onError: onError,
onSettled: onSettled,
initialData: initialData,
select: select,
keepPreviousData: keepPreviousData,
),
[
queryKey,
staleTime,
cacheTime,
enabled,
retry,
refetchOnWindowFocus,
refetchOnReconnect,
refetchInterval,
initialData,
keepPreviousData,
],
);
return _useQueryObserver<T>(client, queryKey, options);
}