useLazyQuery<T> function
QueryResult<T>
useLazyQuery<T>({
- required QueryKey key,
- required Future<
T> queryFn(), - required Ref<
bool> enabled, - QueryOptions<
T> ? options,
Create a disabled query that only fetches when enabled.
final enabled = ref(false);
final user = useLazyQuery(
key: ['user', userId],
queryFn: () => api.getUser(userId),
enabled: enabled,
);
// Later, enable the query
enabled.value = true; // Triggers fetch
Implementation
QueryResult<T> useLazyQuery<T>({
required QueryKey key,
required Future<T> Function() queryFn,
required Ref<bool> enabled,
QueryOptions<T>? options,
}) {
return useQuery(
key: key,
queryFn: queryFn,
options: QueryOptions<T>(
staleTime: options?.staleTime,
gcTime: options?.gcTime,
retry: options?.retry,
retryDelay: options?.retryDelay,
enabled: enabled(),
refetchOnMount: options?.refetchOnMount ?? true,
refetchInterval: options?.refetchInterval,
onSuccess: options?.onSuccess,
onError: options?.onError,
onSettled: options?.onSettled,
select: options?.select,
placeholderData: options?.placeholderData,
initialData: options?.initialData,
),
);
}