React Native BackgroundTimer API Fetch отвечает более одного раза

#react-native

#react-native

Вопрос:

Я новичок в React Native, что-то может быть не так в моем коде.

Я хочу проверять API каждые 10 секунд. Код должен быть в порядке, но я не понимаю, почему он отвечает более одного раза каждый раз, когда вызывается Backgroundtimer.

 const App = () => {
  const [isLoading, setLoading] = useState(false);
  const [data, setData] = useState([]);
 
  useEffect(() => {
    fetch('http://192.168.2.131/api/QChatTrakan?templateNo=22')
      .then((response) => response.json())
      .then((json) => setData(json))
      .catch((error) => console.error(error))
      .finally(() => setLoading(false));
  }, [reflesh]);


  BackgroundTimer.runBackgroundTimer(() => { 
    fetch('http://192.168.2.131/api/QChatTrakan?templateNo=22')
    .then((response) => response.json())
    .then((json) => setData(json))
    .catch((error) => {
      console.error(error);
    });
  console.log(data);
  }, 
  10000);
  

введите описание изображения здесь

Ответ №1:

Вы можете проверять приведенный ниже код для вызова функции или извлечения API каждые 10 секунд.

 const callAPi = () => {
console.log('callAPi initial',new Date().toLocaleString())
setInterval(() => {
  console.log('callAPi',new Date().toLocaleString())
},10000)}

useEffect(() => {
  callAPi()
}, [])
  

Изображение для журнала