Estoy tratando de crear una aplicación de cronómetro simple y obtengo el siguiente error. Probé las soluciones para una pregunta similar pero no pude identificar la causa real y resolverla.
aquí está mi código
import React, { useState, useEffect } from "react" function Watch() { const [iter, setiter] = useState(0); const [running, setRunning] = useState(false); const [time, setTime] = useState("0:0:0"); const [start, setStart] = useState([]); const [today, setToday] = useState([]); useEffect(() => { let interval; if (iter == 0) { var today = new Date() setStart([today.getHours(), today.getMinutes(), today.getSeconds()]) } if (running) { interval = setInterval(() => { setiter((previter) => previter + 10); }, 10); } else if (!running) { clearInterval(interval); } var t = new Date() setToday([t.getHours(), t.getMinutes(), t.getSeconds()]) return () => clearInterval(interval); }, [running]); return ( <div className="stopwatch"> <div className="numbers"> {setTime(running ? (String(today[0] - start[0]) + ':' + String(today[1] - start[1]) + ':' + String(today[2] - start[2])) : time)} <span>{time}</span> </div> <div className="buttons"> <button onClick={() => setRunning(true)}>Start</button> <button onClick={() => setRunning(false)}>Stop</button> <button onClick={() => setTime("0:0:0")}>Reset</button> </div> </div> ); }; export default WatchTenga en cuenta que soy un principiante en Next.js, este es uno de mis primeros proyectos.
Por favor considere esta parte nuevamente. El error proviene de la siguiente línea:
<div className="numbers"> {setTime(running ? (String(today[0] - start[0]) + ':' + String(today[1] - start[1]) + ':' + String(today[2] - start[2])) : time)} <span>{time}</span> </div>Establezca el tiempo durante el montaje del componente utilizando useEffect hook en lugar de ahora.