#reactjs #swr
Вопрос:
Как я могу выполнить повторную выборку на основе данных ответа ?
В моем случае
const key = `/analyses/${anSeq}`;
const response = useSWR<IGetAnalysis>(key, fetcher);
if (typeof response.data?.simularityJson.analyzes === "undefined") {
setTimeout(() => response.mutate(), 1000
// I want to get data every 1s;
}
return response;
подводить итоги
const {data, mutate} = useSWR(key, fetcher);
if (typeof data?.someData === "undefined") {
setTimeout(()=>mutate(), 1000);
};
Ответ №1:
решается с помощью refreshInterval
const [condition, setCondition] = useState<boolean>(false);
const key = `/analyses/${anSeq}`;
const response = useSWR<IGetAnalysis>(key, fetcher, {
refreshInterval: conditon ? 0 : 5000, // not refresh is 0
});
useEffect(() => {
if (response.data?.someData) {
setIsAnalysed(true);
}
}, [response.data?.someData]);