Dentro del componente de la aplicación, tengo un botón que actualiza el estado, y dentro de una función de limpieza, estoy incrementando otro estado (p), que debería actualizar/activar una nueva representación sin registrar el temporizador en la nueva representación. como no está en la matriz de dependencia, después de que el estado haya cambiado, en resumen, el paso incrementará el valor p antes de que setstate se active, creo que sí. después de setstate, el valor p no es el esperado en la consola, estoy consolando dentro de useeffect
import logo from "./logo.svg"; import "./App.css"; import { useEffect, useState } from "react"; function App() { const [state, setState] = useState(0); const [p, setp] = useState(100); useEffect(() => { console.log("p ", p, "state", state); let timer = setTimeout(() => { setState((p) => p + 1); }, 5000); return () => { console.log("inside of cleanup fun"); clearTimeout(timer); setp((p) => p + 1); }; }, [state]); return ( <div className="App"> <button onClick={() => setState((prev) => prev + 1)}>change</button> </div> ); } export default App;producción
p 100 state 0 p 100 state 1 inside of cleanup fun