usePrefetchInfiniteQuery
TheusePrefetchInfiniteQuery hook allows you to prefetch an infinite query during component render. This is useful for prefetching paginated data that you know will be needed soon.
Import
Signature
Type Parameters
type
default:"unknown"
The type of data returned by the query function for each page
type
default:"DefaultError"
The type of error that can be thrown by the query function
type
default:"TQueryFnData"
The type of data after transformation
type
default:"QueryKey"
The type of the query key
type
default:"unknown"
The type of the page parameter
Parameters
FetchInfiniteQueryOptions
required
Configuration options for the infinite query to prefetch.
TQueryKey
required
A unique key for the query. Must be an array.
QueryFunction<TQueryFnData, TQueryKey>
required
The function that will be called to fetch data.
TPageParam
required
The default page param to use when fetching the first page
(lastPage: TQueryFnData, allPages: TQueryFnData[], lastPageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | undefined | null
required
Function that returns the next page parameter
(firstPage: TQueryFnData, allPages: TQueryFnData[], firstPageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | undefined | null
Function that returns the previous page parameter
number
Number of pages to prefetch. Defaults to 1.
QueryClient
Optional QueryClient instance to use. If not provided, the context client is used.
Returns
This hook does not return anything (void). It only triggers a prefetch if the query does not already exist in the cache.
Examples
Basic Usage
Prefetch Multiple Pages
Conditional Prefetching
With Custom Configuration
Notes
- The hook only prefetches if the query doesn’t already exist in the cache (checked via
queryClient.getQueryState). - This hook is designed to be used during render, making it safe to use in component bodies.
- By default, only the first page is prefetched. Use the
pagesoption to prefetch more pages. - For event-based prefetching (like onClick), consider using
queryClient.prefetchInfiniteQuerydirectly instead. - The prefetch is fire-and-forget; you don’t get access to the loading state or data.
- If you need to access the query state, use
useInfiniteQueryinstead.