Me enfrento a un problema con el useState de reacción con matrices, esta es la declaración de estado de mis teamMembers del equipo:
const [teamMembers, setTeam] = useState(); ... y estoy llenando un formulario y, al hacer clic en un botón, actualizo el estado de los teamMembers del equipo. el siguiente código está dentro de un controlador:
let newTeam = teamMembers || ['Tony Stark']; console.log(newTeam); // here it is giving me Tony Stark setTeam(newTeam); He usado useEffect para ver la actualización:
useEffect(() => { console.log(teamMembers); // here it is giving me empty array([]) })¿Qué me estoy perdiendo?
la corrección en el tercer bloque podría funcionar:
useEffect(() => { console.log(teamMembers); // here it is giving me empty array([]) },[teamMembers]);Primero debe establecerse en una matriz vacía:
const [teamMembers, setTeam] = useState([])Después:
useEffect(() => { console.log(teamMembers) }, [teamMembers]) Si la matriz alguna vez cambia, useEffect registrará una matriz vacía.
Piensa que estás tratando de hacer:
const [teamMembers, setTeam] = useState([]) setTeam([...teamMembers, 'Tony stark']) useEffect(() => { console.log(teamMembers) }, [teamMembers])