En mi proyecto de reacción, usar setState de useState hook no cambia mi valor de estado, después de llamar a setState.
const [name, setName] = useState("Old"); useEffect(()=>{ setName("New"); console.log(name); //Always prints "Old" }) Intenté agregar una devolución de llamada a setName , pero tampoco lo aceptó.
Finalmente usé el gancho useEffect
Dado que setState es asíncrono, no estaba actualizando el estado inmediatamente en la llamada, sino que inicia el proceso de cambio de estado y javascript procede a ejecutarse en las líneas a continuación.
Así que terminé usando useEffect hook para ejecutar cualquier cosa que quisiera ejecutar después de cambiar el name del estado, agregando el name del estado como una dependencia como se muestra a continuación.
const [name, setName] = useState("Old"); useEffect(()=>{ setName("New"); }) useEffect(()=>{ console.log(name); // This Always gets the new value }, [name])