Опрос API с помощью реакции и setInterval ⇐ Javascript
-
Гость
Опрос API с помощью реакции и setInterval
Я пытаюсь каждую секунду опрашивать API Spotify с помощью setInterval, когда компонент загружается. Однако при тестировании я получаю сообщение об ошибке: Invalid Hook Call..etc. Я считаю, что это потому, что я использую useEffect внутри другого useEffect во время опроса. Я не знаю, как это преодолеть.
const getCurrentSong = () => { useEffect(() => { fetch('/spotify/current-song').then((response) => { // проверяем, если не ок если(!ответ.ок){ возвращаться {}; } еще { вернуть ответ.json(); } }).then((данные) => { setSong (данные); console.log(данные); }); }, []) } ПолучитьПодробностиКомнаты(); получить текущую песню(); useEffect(() => { константный интервал = setInterval(()=>{ //getCurrentSong(); console.log("тест"); }, 1000) return () => ClearInterval (интервал); }, []); Это та часть кода, которая вызывает беспокойство. Сначала я пытался избавиться от useEffect в функции getCurrentSong, но это означало бы, что я застряну в цикле выполнения этой функции, а это не то, чего я хочу. В идеале я хочу, чтобы компонент отображался, вызывал API, а затем каждую секунду опрашивал его на наличие обновлений.
Я пытаюсь каждую секунду опрашивать API Spotify с помощью setInterval, когда компонент загружается. Однако при тестировании я получаю сообщение об ошибке: Invalid Hook Call..etc. Я считаю, что это потому, что я использую useEffect внутри другого useEffect во время опроса. Я не знаю, как это преодолеть.
const getCurrentSong = () => { useEffect(() => { fetch('/spotify/current-song').then((response) => { // проверяем, если не ок если(!ответ.ок){ возвращаться {}; } еще { вернуть ответ.json(); } }).then((данные) => { setSong (данные); console.log(данные); }); }, []) } ПолучитьПодробностиКомнаты(); получить текущую песню(); useEffect(() => { константный интервал = setInterval(()=>{ //getCurrentSong(); console.log("тест"); }, 1000) return () => ClearInterval (интервал); }, []); Это та часть кода, которая вызывает беспокойство. Сначала я пытался избавиться от useEffect в функции getCurrentSong, но это означало бы, что я застряну в цикле выполнения этой функции, а это не то, чего я хочу. В идеале я хочу, чтобы компонент отображался, вызывал API, а затем каждую секунду опрашивал его на наличие обновлений.
Мобильная версия