인프런 커뮤니티 질문&답변

ReKoding님의 프로필 이미지
ReKoding

작성한 질문수

Next + React Query로 SNS 서비스 만들기

인피니트 스크롤링

[인피니트 스크롤링 강좌] prefetchInfiniteQuery에 전달되는 queryFn과 useInfiniteQuery에 전달되는 queryFn을 항상 똑같이 설정해야 되나요??

해결된 질문

작성

·

438

·

수정됨

1

안녕하세요 !

강의를 보다가 궁금한 부분이 생겨서 질문 드립니다 !

 

  1. 상위 QueryProvider를 만들 때 ReactQueryStreamedHydration로 미리 감싸면 강의에서 소개 해준 dehydrate(queryClient)로 감싸는 작업을 하지 않아도 되나요? 

<QueryClientProvider client={client}>
      <ReactQueryStreamedHydration>{children}</ReactQueryStreamedHydration>
</QueryClientProvider>

 

dehydrate와 HydrateBoundary가 정확히 어떤 역활을 하는지 궁금합니다

const dehydratedState = dehydrate(queryClient);

  return (
    <HydrationBoundary state={dehydratedState}>
      <MoreListView keyword={keyword} />
    </HydrationBoundary>
  );

 

  1. prefetchInfiniteQuery의 queryFn과 useInfiniteQuery의 queryFn은 똑같이 작성해야 하나요??

만약 이렇게 하면 안된다면 전달하고자 하는 매개변수를 client component에서 전달하고자 할 때 어떻게 해야할 지 고민이 됩니다. (전달하는 상태 값은 useContext로 만든 상태 값입니다..)

// prefetch 부분
const queryClient = new QueryClient();
  await queryClient.prefetchInfiniteQuery({
    queryFn: fetchMoreList,
  });
// client component 부분
useInfiniteQuery<Dummy[], Object, InfiniteData<Dummy[]>, [_1: string, _2: string], number>({
      queryFn: ({ pageParam, queryKey }) => fetchMoreList({ pageParam, queryKey, sort }),
    });

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

  1. HydrationBoundary를 대체할 수 있냐는 질문이신가요? 문서에 따르면 되는 것 같기는 합니다만 저는 experimental은 거의 쓰지 않습니다.

  2. 서로 달라도 됩니다. SSR + 쿠키 등의 이슈로 서버용 함수랑 클라용 함수가 다를 수밖에 없게 됩니다. 나중에 강의에서도 서로 다른 함수를 사용하게 됩니다.

ReKoding님의 프로필 이미지
ReKoding
질문자

감사합니다 !! ㅎㅎ

ReKoding님의 프로필 이미지
ReKoding

작성한 질문수

질문하기