Intenté actualizar un valor de estado usando su setter del gancho useState , pero no se actualizó. El mismo setter está trabajando en una función diferente mientras establece el valor verdadero.
Para asegurarme de que la llamada a la función fuera correcta, intenté actualizar un estado diferente de la función de falla y ¡funciona!
Me he estado preguntando por qué ese estado en particular no se actualiza a un valor falso booleano.
const initialFormState = { 0: { a: null, b: 0.0, c: 0.0 } }; const [form, setForm] = useState(initialFormState); const [fileUploadModal, setFileUploadModal] = useState(false); function openFileInput() { setFileUploadModal(true); // this works fine } function closeFileInput() { setFileUploadModal(false); // this doesn't update setForm(initialFormState); // this works fine as well console.log(fileUploadModal, form); }Para comprobar la cordura:
useEffect(() => { console.log('File open state modified', fileUploadModal); }, [fileUploadModal]);Esto no se actualiza, lo que demuestra que hay algún problema con el setter del estado.
Lo siento por la pregunta, pero el problema se debió a un problema de plantilla, el clic también activó la función que establece el valor en verdadero. La confusión surgió porque no se llamó a la actualización de estado useEffect, y eso me llevó a otra línea de investigación. El verdadero problema fue que el clic btn no se propagó correctamente.
¡Gracias por la ayuda a todos!