
const {fetchNextPage,fetchPreviousPage,hasNextPage,hasPreviousPage,isFetchingNextPage,isFetchingPreviousPage,...result} = useInfiniteQuery(queryKey, ({ pageParam = 1 }) => fetchPage(pageParam), {...options,getNextPageParam: (lastPage, allPages) => lastPage.nextCursor,getPreviousPageParam: (firstPage, allPages) => firstPage.prevCursor,})
Options
The options for useInfiniteQuery are identical to the useQuery hook with the addition of the following:
queryFn: (context: QueryFunctionContext) => Promise<TData>defaultQueryFnQueryFunctionContext object with the following variables:queryKey: EnsuredQueryKey: the queryKey, guaranteed to be an ArraypageParam: unknown | undefinedpageParam if needed for use in the props below.getNextPageParam: (lastPage, allPages) => unknown | undefinedundefined to indicate there is no next page available.getPreviousPageParam: (firstPage, allPages) => unknown | undefinedundefined to indicate there is no previous page available.Returns
The returned properties for useInfiniteQuery are identical to the useQuery hook, with the addition of the following:
data.pages: TData[]data.pageParams: unknown[]isFetchingNextPage: booleantrue while fetching the next page with fetchNextPage.isFetchingPreviousPage: booleantrue while fetching the previous page with fetchPreviousPage.fetchNextPage: (options?: FetchNextPageOptions) => Promise<UseInfiniteQueryResult>options.pageParam: unknown allows you to manually specify a page param instead of using getNextPageParam.options.cancelRefetch: boolean if set to true, calling fetchNextPage repeatedly will invoke fetchPage every time, whether the previous
invocation has resolved or not. Also, the result from previous invocations will be ignored. If set to false, calling fetchNextPage
repeatedly won't have any effect until the first invocation has resolved. Default is true.fetchPreviousPage: (options?: FetchPreviousPageOptions) => Promise<UseInfiniteQueryResult>options.pageParam: unknown allows you to manually specify a page param instead of using getPreviousPageParam.options.cancelRefetch: boolean same as for fetchNextPage.hasNextPage: booleantrue if there is a next page to be fetched (known via the getNextPageParam option).hasPreviousPage: booleantrue if there is a previous page to be fetched (known via the getPreviousPageParam option).The latest TanStack news, articles, and resources, sent to your inbox.