useQuery 에 매개변수로 넣어주는 options 객체의 enabled 와 refetchInterval 을 사용하시면 될 것 같습니다. query 는 enabled 가 true 인 상황일 때 실행이 됩니다. refetchInterval 로 주기적으로 패칭할 타임을 걸어주고, enabled 를 활용해 특정 상황에 콜을 멈추면 될 것 같습니다. 아래 예제 코드는 state 를 활용해 enabled 상태를 관리하고, timeout 되는 시점에 enabled 를 false 로 바꿔주어 콜을 그만하게 하는 예제입니다. const [enabled, setEnabled] = useState(true); const { data, isLoading } = useQuery<IList[], Error>(KEY_LIST, getList, { refetchInterval: 500, enabled, }); useEffect(() => { const timeout = setTimeout(() => { setEnabled((prev) => !prev); }, 5000); return () => clearTimeout(timeout); }, []);

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 2월 20일 오전 10:36

댓글 0