Recibo una advertencia "No se puede realizar una actualización de estado de React en un componente desmontado" cuando estoy ejecutando este código
function timer() { const [dateState, setDateState] = useState(new Date()); useEffect(() => { setInterval(() => setDateState(new Date()), 1000); }, []); return( <div className="container"> <p className="text-end text-danger">{dateState.toLocaleDateString('fr-BE' , { day : 'numeric', month : 'short', year: 'numeric' })}</p> <div className="text-center"> <h3 className="text-info"> {dateState.toLocaleString('fr-BE', { hour: 'numeric', minute: 'numeric', second : 'numeric', hour24: true, })} </h3> </div> </div> ) } export default timer;traté de hacer
const [dateState, setDateState] = useState(new Date()); useEffect(() => { let mount = true; if(mount){ setInterval(() => setDateState(new Date()), 1000); } return () => { isMounted = false }; }, []);Pero sigo sin funcionar, estoy un poco atascado...
Debe limpiar el temporizador setInterval en el desmontaje del componente, como:
useEffect(() => { const interval = setInterval(() => setDateState(new Date()), 1000); return () => { clearInterval(interval); } }, []);