가수면

[React Query] useInfiniteQuery 본문

React/라이브러리

[React Query] useInfiniteQuery

니비앙 2023. 1. 9. 11:40
const initialUrl = "https://swapi.dev/api/people/";
const fetchUrl = async (url) => {
  const response = await fetch(url);
  return response.json();
};
.
.
.
    const { data, fetchNextPage, hasNextPage, isLoading, isFetching, isError, error } = useInfiniteQuery(
    ["sw-people"],
    ({ pageParam = initialUrl }) => fetchUrl(pageParam),
    {
      getNextPageParam: (lastPage) => lastPage.next || undefined, // hasNextPage가 undefined인지 확인해서 멈춤
    }
  );
  if (isLoading) return <div className="loading">로딩 중...</div>;
  if (isError) return <div>Error! {error.toString()}</div>;
  
  return (
    <>
      {isFetching && <div className="loading">로딩 중...</div>}

 

 

 

pageParam  => 두번째 인자

 

getNextPageParam: (lastPage or allPage(택1)) 처럼 allPage를 넣을 수도 있음. 새 페이지 데이터가 있을 때마다 pageParam에 지정해줌

 

isLoading이랑 isFetching 둘 다 사용해줘야 함

'React > 라이브러리' 카테고리의 다른 글

[React Query] 비동기 취소하기  (0) 2023.01.12
[React Query] 인증  (0) 2023.01.11
Recoil  (0) 2023.01.09
Helmet  (0) 2023.01.09
ApexCharts  (0) 2023.01.09
Comments