как использовать повторную выборку на основе данных ответа

#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]);