Infinite Scroll

이홍경·2022년 6월 7일
0
post-thumbnail

Infinite scroll 💡

  • 응답 데이터에 다음 페이지에 대한 정보가 없을 경우
  • 리턴값에 다음 페이지에 필요한 정보를 적어 리턴 한다.
	const reqData = async ({ pageParam = 1 }) => {
    	const { data } = await axios.get(`api주소`);
    	return {
      		result: data.results,
      		next: pageParam + 1
    		}
  		};

마지막 페이지에 대한 조건도 처리 해야 하나 생략함

const { data, error, fetchNextPage, hasNextPage, isFetching, isFetchingNextPage, status } = useInfiniteQuery(
    [keyword],
    reqData,
    {
      getNextPageParam: (lastPage) => {
        if(lastPage && lastPage.next) {
          return lastPage.next;
        }
      }
    }
  )

그리고 명령형으로 if를 활용해 로딩중인 상태에 대한 컴포넌트를 보여주게 된다면 인피니트 스크롤이 제대로 작동하지 않았다...

	if(status === 'loading') return <Loading />
profile
개발자를 꿈꾸는 자

0개의 댓글