TypeScript로 getQueryState 사용하기
React Query를 이용해 App.js에서 다음과 같이 API 데이터를 받아왔다.
// App.js
const query = useQuery("dataName", async () =>
(
await fetch(
"https://API 링크"
)
).json()
);
App.js가 아닌 다른 페이지에서 해당 데이터를 받아오려면 getQueryState를 이용하면 된다.
공식문서 : https://react-query-v3.tanstack.com/reference/QueryClient#queryclientgetquerystate
//App.js가 아닌 다른 파일
import { useQueryClient } from "react-query";
const queryClient = useQueryClient();
const query = queryClient.getQueryState("dataName");
useEffect(() => {
if (query.status === "success" && query.data) {
console.log(query.data.culturalEventInfo.row);
}
}, [query.status]);
# TypeScript로 타입 지정하기
TypeScript를 이용한다면 다음과 같이 interface로 타입을 선언하고 asQueryType으로 타입을 지정한다.
interface DataType {
CODENAME: string;
GUNAME: string;
MAIN_IMG: string;
TITLE: string;
}
interface QueryType {
status: string;
data: { culturalEventInfo: { row: DataType[] } };
}
import { useQueryClient } from "react-query";
const queryClient = useQueryClient();
const query = queryClient.getQueryState("dataName") as QueryType;
useEffect(() => {
if (query.status === "success" && query.data) {
console.log(query.data);
}
}, [query.status]);
이때 반드시 && query.data라고 적어주어야 한다. query.data가 undefined가 될 수도 있기 때문!
'FE - Tools > 개발 도구' 카테고리의 다른 글
[Zustand] 간단한 상태 관리, React에서 Zustand 사용하는 방법 (0) | 2023.07.15 |
---|---|
[Redux Toolkit] TypeScript로 store, slice, selector 타입 지정하기 (0) | 2023.02.26 |
[React Query] React Query 알아보기 (0) | 2023.01.30 |
[Redux Toolkit] Redux Toolkit이란 무엇일까 (+ React에서 사용하는 방법) (0) | 2023.01.10 |
[Tailwind CSS] Tailwind CSS 알아보기 (with React) (0) | 2022.12.23 |