Можно ли установить интервал автообновления каждые несколько секунд при использовании Context API из React? Функция getData () запускает axios.get () в API, но, тем не менее, когда я пытаюсь установить setInterval () и очистить в функции возврата хука useEffect, она не очищает интервал. getData () устанавливает в состояние приложения текущие и загружаемые переменные.
Я просто хочу обновлять и повторять вызов API каждые несколько секунд. Я попытался с хуком useRef (), и я начал работать, но все же useEffect не очищает интервал после его завершения.
Я хочу получить доступ к текущему свойству в функции возврата компонента и отображать некоторые данные каждый раз при выполнении вызова API.
Вот код:
const { loading, current, getData } = appContext;
useEffect(() => {
const interval = setInterval(() => {
getData();
console.log('updated');
}, 1000);
return () => clearInterval(interval);
}, []); // eslint-disable-line // also tried without the []
getData () код:
const getData = async () => {
setLoading();
const res = await axios.get(process.env.REACT_APP_APIT);
dispatch({ type: GET_CURRENT, payload: res.data });
};