Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

262
Views
Problema con la actualización en cada actualización, localStorage, useState, useEffect

Estoy tratando de evitar que mi aplicación entre en useEffect hook e implemente lo que hay dentro en un período de 5 segundos, independientemente de la situación en la que la página se actualice o no.

Mi código aún solo activa el gancho useEffect solo en la actualización de la página. Realmente no importa si pasaron 5 segundos, se activa en cada actualización de la página y luego no hace nada durante una eternidad a menos que actualice la página nuevamente. Actúa como un gancho useEffect con una matriz de dependencias vacía.

¿Cómo puedo lograr que useEffect hook se ejecute cada 5 segundos, independientemente de que la página se actualice o no? Aquí está mi fragmento.

 const localVisitTime = localStorage.getItem('localVisitTime'); const currentTime = new Date().getTime(); const timeDifference = currentTime - localVisitTime; const [ visitTime, setVisitTime ] = useState(localVisitTime); if (localVisitTime && timeDifference <= 5000) { // Do nothing, wait! } else { localStorage.setItem('localVisitTime', new Date().getTime()); setVisitTime(localVisitTime); } useEffect(() => { const fetchData = async () => { console.log('Data fetched!'); } fetchData(); }, [visitTime]);
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

La razón por la que no se dispara varias veces es que la verificación de la diferencia horaria ocurre solo una vez, debe usar un intervalo establecido que verifique cada segundo si la hora es válida e intenta establecer la diferencia horaria en un estado, pero creo que no es necesario .

Creo que desea mantener esta activación de 5 segundos incluso entre actualizaciones de página, pero si no es crítico, siempre puede comenzar de nuevo cuando se actualiza la página. Creo que debería usar el intervalo establecido y no preocuparse por actualizaciones como esta.

 const fetchData = async () => { console.log("Data fetched!"); }; useEffect(() => { fetchData(); const interval = setInterval(() => { fetchData(); }, 5000); return () => clearInterval(interval); }, []);

De esta manera, la obtención de datos se ejecutará cada 5 segundos y se ejecutará en cada actualización.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!