Skip to main content

usePrefetchInfiniteQuery

The usePrefetchInfiniteQuery 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 pages option to prefetch more pages.
  • For event-based prefetching (like onClick), consider using queryClient.prefetchInfiniteQuery directly 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 useInfiniteQuery instead.