해결된 질문
작성
·
438
·
수정됨
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>
);
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
HydrationBoundary를 대체할 수 있냐는 질문이신가요? 문서에 따르면 되는 것 같기는 합니다만 저는 experimental은 거의 쓰지 않습니다.
서로 달라도 됩니다. SSR + 쿠키 등의 이슈로 서버용 함수랑 클라용 함수가 다를 수밖에 없게 됩니다. 나중에 강의에서도 서로 다른 함수를 사용하게 됩니다.
감사합니다 !! ㅎㅎ