useQuery<T> function
A hook to fetch, cache, and update data dynamically.
Implementation
QueryState<T> useQuery<T>({
required String key,
required Future<T> Function() fetcher,
Duration staleTime = Duration.zero,
Duration cacheTime = const Duration(minutes: 5),
int retries = 3,
}) {
final queryClient = useQueryClient();
final controller =
useMemoized(() => queryClient.cache.build<T>(key), [key, queryClient]);
final state = useValueListenable(controller);
useEffect(() {
controller.fetch(
fetcher: fetcher,
staleTime: staleTime,
cacheTime: cacheTime,
retries: retries,
);
return null;
}, [controller]);
return state;
}