React, Next

[REACT] useQuery 키를 여러개 전달하여 응용하기

재원쓰 2023. 5. 16. 00:08

useQuery 요청시 첫 매개변수 자리는 식별자 키(key)이다. 보통 이 부분은 스트링 형태인 것으로 알지만 아래와 같이 배열 형태로 여러개의 키를 가질 수 있다.

 

특정 상황에서 useQuery를 직접 다시 호출하기

useQuery를 다시 호출하고 싶을 때는 queryClient.refetchQueries를 이용해서 useQuery의 키를 넣어주면 된다.

이렇게 해주면 되는데 그전에 세팅이 되어있는지 살펴보아야 한다.

queryClient를 상위 컴포넌트 쪽에 세팅해줘야 한다.

_app.js

export default function App({ Component, pageProps }) {
  const client = new QueryClient({
    defaultOptions: {
      queries: {
        refetchOnWindowFocus: false,
      },
    },
  });

  return (
    <QueryClientProvider client={client}>
      <Seo />
      <DndProvider backend={HTML5Backend}>
        <ThemeProvider theme={Theme}>
          <Layout>
            <Component {...pageProps} />
          </Layout>
        </ThemeProvider>
      </DndProvider>
    </QueryClientProvider>
  );
}

그리고 하위 컴포넌트에서는 불러와준다.

export default function WelfareNews() {
  const queryClient = useQueryClient();
}

이렇게 하고나면 queryClient가 제공하는 것들을 쓸 수 있다.