Infinite Queries
'useInfiniteQuery'를 사용하면 달라지는 것들
- 'data'는 infinete query의 데이터를 담고있는 객체이다.
- 'data.pages'은 받아진 페이지들을 포함하는 배열이다.
- 'data.pageParams'은 페이지들을 fetch하기위해 사용되어지는 page params을 포함하는 배열이다.
- 'fetchNextPage'와 'fetchPreviousPage'함수를 사용할 수 있게된다.
- 'getNextPageParam'과 'getPreviousPageParam'옵션은 데이터가 더 로드될 수 있는지의 여부, 데이터를 가져오는데 필요한 정보를 결정하는데 사용할 수 있고, 이 정보는 쿼리 함수(fetchNextPage 또는 fetchPreviousPage)에 추가 매개변수로 제공된다.
즉, useInfiniteQuery 훅에서 fetchNextPage 또는 fetchPreviousPage 함수를 호출하면, 새로운 페이지 데이터를 가져오기 위한 매개변수를 'getNextPageParam'과 'getPreviousPageParam'옵션으로부터 return된 값으로 제공받는다. - 'hasNextPage'를 사용할 수 있게되고, 이 값은 'getNextPageParam'이 undefined가 아닌 다른 값을 내뱉을 경우 true가 된다.
'hasPreviousPage'역시 'getPreviousPageParam'에 의한 이하동문이다. - 'isFetchingNextPage'와 'isFetchingPreviousPage'을 이용할 수 있게되고, 이들은 background에서 상태를 업데이트중인지, 더 남은 정보를 업데이트중인지 boolean값으로 알 수 있게된다.
Note: 'initialData' 혹은 'select'옵션을 'useInfiniteQuery'에서 사용할 경우 데이터를 재구성할때 여전히 'data.pages'
와 'data.pageParams'속성이 포함되어 있는지 확인해야한다. 그렇지 않으면 쿼리에서 반환된 결과로 인해 변경 사항이 덮어 씌워질 수 있다.
쿼리스트링 기술
'React-Query' 카테고리의 다른 글
Guides&Concepts_(Placeholder Query Data & Prefetching) (0) | 2023.04.24 |
---|---|
Guides&Concepts_(Initial Query Data) (0) | 2023.04.24 |
Guides&Concepts_(Query Retries & Paginated Queries) (0) | 2023.04.22 |
Guides&Concepts_(React Query with Next.js) (0) | 2023.03.28 |
Guides&Concepts_(Paginated / Lagged Queries) (0) | 2023.03.27 |