작성
·
293
0
선생님~!!
상품목록페이지가 안뜹니다 ㅠㅠ
뭘 잘못한걸까요??
app.tsx파일엔 아래와 같이 입력했습니다.
import { QueryClientProvider } from 'react-query'
import { useRoutes } from 'react-router-dom'
import { getClient } from './queryClient'
import { routes } from './routes'
import { ReactQueryDevtools } from 'react-query/devtools'
const App = () => {
const elem = useRoutes(routes)
const queryClient = getClient()
return (
<QueryClientProvider client={queryClient}>
{elem}
<ReactQueryDevtools initialIsOpen={false} />
</QueryClientProvider>
)
}
export default App
import { QueryClient } from 'react-query'
// import { getTodos, postTodo } from '../my-api'
type AnyOBJ = { [key: string]: any };
export const getClient = (() => {
let client: QueryClient | null = null
return () => {
if (!client) client = new QueryClient({})
return client
}
})()
const BASE_URL = "https://fakestoreapi.com"
export const fetcher = async ({
method,
path,
body,
params,
}: {
method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
path: string;
body?: AnyOBJ;
params?: AnyOBJ;
}) => {
const url = `${BASE_URL}${path}`;
const fetchOptions: RequestInit = {
method,
headers: {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": BASE_URL,
},
};
try {
const res = await fetch(url, fetchOptions);
const json = await res.json();
return json;
} catch (err) {
console.error(err);
}
};
export const QueryKeys = {
PRODUCTS: "PRODUCTS",
};
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. ksw님, 상품목록페이지가 나타나지 않는 문제가 발생했다니 답답하셨겠어요.
에러 메시지에 따르면 “No QueryClient set, use QueryClientProvider to set one” 이라고 나와 있는데, 이는 QueryClientProvider
를 사용하여 QueryClient
인스턴스를 설정해야 한다는 것을 암시합니다. 공유주신 코드를 보면 QueryClientProvider
로 감싸진 elem
과 <ReactQueryDevtools>
컴포넌트가 있는데 코드 자체는 문제가 없어 보입니다.
다만, QueryClientProvider
내부의 다른 컴포넌트 또는 useRoutes
에서 반환된 elem
이 QueryClient
를 필요로 하는데, 해당 컴포넌트에 제대로 전달되지 않았을 가능성이 있습니다.
이를 해결하기 위한 몇 가지 단계를 제안드립니다:
QueryClientProvider
컴포넌트 주변에 ReactQueryDevtools
가 함께 온전히 렌더링되고 있는지 확인해보세요.routes
정의에서 반환되는 컴포넌트들이 QueryClient
를 필요로 하는 useQuery
또는 useMutation
호출과 관련있는 경우, 이들 컴포넌트가 정상적으로 QueryClientProvider
아래에 위치하는지 확인하세요.이런 방법들로도 문제가 해결되지 않는 경우, 웹 브라우저의 콘솔 또는 네트워크 탭을 확인하면 추가적인 정보를 얻을 수 있습니다.
아래 링크에서 더 다양한 경우의 해결책을 찾을 수도 있으니 참고하시면 좋을 것 같습니다:
- React Query 문서: https://react-query.tanstack.com/
- Stack Overflow 및 개발자 커뮤니티
도움을 드리기 위해 최선을 다할게요, 문제가 잘 해결되기를 바랍니다!