¿Cómo actualizo mi aplicación de reacción cada 2 segundos?
import React, {useState, useEffect} from 'react'; import {Route, Switch, useLocation} from 'react-router-dom'; import Home from './Home'; function App() { const location = useLocation(); console.log(location); const [feedbacks, setFeedbacks] = useState([]); useEffect(() => { const fetchArticles = async () => { setFeedbacks([]); const url = 'https://url.abc.com/'; const api_response = await fetch(url); let data = await api_response.json(); setFeedbacks(data); } fetchArticles(); }, []) const data = {feedbacks}; return ( <div className="App"> <Switch> <Route path="/" render={() => <Home data={data}/>} exact/> <Route path="/:username" render={() => <Home data={data}/>} exact/> </Switch> </div> ); } export default App;
¿Has intentado usar setInterval();
en fetchArticles
? Algo como:
setInterval(fetchArticles(), 2000)
Hay una función JS para intervalos "setInterval" ejecuta la función que pasas en un intervalo regular en ms.
Esto debería funcionar:
const fetchArticles = async () => { setFeedbacks([]); const url = 'https://url.abc.com/'; const api_response = await fetch(url); let data = await api_response.json(); setFeedbacks(data); } useEffect(() => { setInterval(fetchArticles(), 2000) }, [])
useEffect(() => { const fetchArticles = async () => { setFeedbacks([]); const url = 'https://url.abc.com/'; const api_response = await fetch(url); let data = await api_response.json(); setFeedbacks(data); } setInterval(fetchArticles(), 2000) }, [])