Open DrMaemi opened 1 year ago
예를 들어 아래와 같이 Tanstack Query를 이용해 data 객체를 가져왔을 때
기존 코드처럼 React state 훅을 사용하고 싶다면.. 아래와 같이 작성해줘야 한다. (useQuery({ ... })
호출 후 useState
, useEffect
(Tanstack query로 data 업데이트 감지) 를 사용한다.)
Tanstack useQuery 훅을 모달 창 열림 여부 등의 state에 대해 조건부로 호출하는 방법
import { useQuery, useIsFetching } from 'react-query';
// ...
const YourModalComponent: React.FC<PropsType> = ({ /* your props */ }) => {
const isModalOpen = /* 로직에 따라 모달이 열렸는지 여부를 판단 */;
const isQueryActive = useIsFetching(); // 현재 실행 중인 쿼리의 개수를 반환
const { data: storages, isLoading } = useQuery<StorageInfo[], Error>({
queryKey: ['storages'],
queryFn: async () => await getPurgeableRecoverableDisks("yourHostName"), // 호스트 이름을 전달
initialData: [],
enabled: isModalOpen && !isQueryActive, // 모달이 열려 있고, 현재 실행 중인 쿼리가 없을 때만 실행
});
// 모달 컴포넌트의 나머지 부분
return (
/* 모달 내용 렌더링 */
);
};