Me he encontrado con un comportamiento extraño en un componente que estoy haciendo.
Tengo algunas entradas que mapeo y un cambio que pasa el valor al componente principal. Luego agrego estos datos a una matriz según los datos que se envíen.
Tengo setArray, que es mi estado, pero parece que no se configura.
const [array, setArray]= useState([]) function onChange(e, __typename, valid, value){ console.log(e, __typename, valid, value) // this returns mobile 01882828 true 0 if i am in the mobile input const newSelectedArray = array; if(array.includes(__typename)){ newSelectedArray.push({ ...value, __typename: __typename, data: e, isValid: valid }); setArray(newSelectedArray) }else{ array[value] = { ...value, __typename: __typename, data: e, isValid: valid } setArray(array) } //console.log(array) this works and logs my array } useEffect(() => { console.log(array); //this does not log my array }, [array])Mi regreso
... <OnboardingContent sections={sections} sendToRegister={onChange}/> <button onClick={() => console.log(array)}>Log</button> //This logs the array as well <button onClick={() => setArray(array)}>State</button> //This does nothing ...ejemplo de salida de console.log
[ { "__typename": "mobile", "data": "01882828", "isValid": true }, { "__typename": "firstname", "data": "Hello", "isValid": false } ]Si alguien pudiera decirme por qué nada de esto funciona