https://tanstack.com/query/latest/docs/framework/react/reference/useInfiniteQuery
공식 문서를 잘 보자.
🖥️ const {
fetchNextPage,
fetchPreviousPage,
hasNextPage,
hasPreviousPage,
isFetchingNextPage,
isFetchingPreviousPage,
promise,
...result
} = useInfiniteQuery({
queryKey,
queryFn: ({ pageParam }) => fetchPage(pageParam),
initialPageParam: 1,
...options,
getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) =>
lastPage.nextCursor,
getPreviousPageParam: (firstPage, allPages, firstPageParam, allPageParams) =>
firstPage.prevCursor,
})
기본적으로 useQurey훅과 동일한 옵션들을 가지고 있고, 아래 내용들이 추가된다.
queryFn: (context: QueryFunctionContext) => Promise<TData>
initialPagePare: TPageParam
getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) => TPageParam|undefined|null
getPreviousPageParam: (firstPage, allPages, firstPageParam, allPageParams) => TPageParam | undefined | null
maxPages: number | undefined
useInfiniteQuery의 리턴값은 useQuery훅과 동일하고, 아래 내용이 추가되며 isRefetching과 isRefetchError에서 약간의 차이가 있다.
data.pages: TData[]data.pageParams: unknown[]isFetchingNextPage: booleanisFetchingPreviousPage: booleanfetchNextPage: (options?: FetchNextPageOptions) => Promise<UseInfiniteQueryResult>fetchPreviousPage: (options?: FetchPreviousPageOptions) => Promise<UseInfiniteQueryResult>hasNextPage: booleanhasPreviousPage: booleanisFetchNextPageError: booleanisFetchPreviousPageError: booleanisRefetching: booleanisRefetchError: booleanpromise: Promise<TData>