
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>QueryFunctionContext object with the following variables:queryKey: QueryKeypageParam: unknown | undefinedgetNextPageParam: (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.fetchPreviousPage: (options?: FetchPreviousPageOptions) => Promise<UseInfiniteQueryResult>options.pageParam: unknown allows you to manually specify a page param instead of using getPreviousPageParam.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.