TanStackT
TanStack3y ago
4 replies
brilliant-lime

What is the correct way of using useInfiniteQuery?

  const [pagination, setPagination] = useState({
    offset: parseInt(router.query.offset as string) || 0,
    limit: parseInt(router.query.limit as string) || 10,
  });


  const {
    data,
    isFetching,
    isLoading,
    fetchPreviousPage,
    isFetchingPreviousPage,
    fetchNextPage,
    isFetchingNextPage,
  } = useInfiniteQuery({
    queryKey: ['tableData', pagination],
    queryFn: async ({ pageParam = pagination }) => {
      const response: ApiResponse<T> = await fetch(
        resourceUrl + `?offset=${pageParam.offset}&limit=${pageParam.limit}`,
      ).then((res) => res.json());

      return response;
    },
    keepPreviousData: true,
    refetchOnWindowFocus: false,
  });


       fetchPreviousPage({
                pageParam: {
                  offset: offset - 10,
                  limit: pageSize,
                },
              });
Was this page helpful?