Uso useState para hacer que handleChange() . para actualizar el valor de mi formulario y enviarlo a otro componente para su uso posterior. pero cuando console.log() el valor del estado para verificar qué valor está almacenado en este momento, descubrí que almacena el anterior.
ejemplo
formulario de entrada: "a" console.log: ""
formulario de entrada: "ab" console.log: "a"
formulario de entrada: "abc" console.log: "ab"
setState actualiza el anterior, no el último. Entonces, cuando envíe el valor del formulario, faltará el último valor del formulario
Todo My handleChange() y <input> serán así:
const [classDataValue, setclassDataValue] = useState({ className: "", classType: "", ownerEmail: user, collEmail: "", periodList: [], PollList: [], }); function handleClassChange(e) { //handle the change of the input const { name, value } = e.target; console.log(name, value); setclassDataValue((prev) => ({ ...prev, [name]: value, })); console.log(classDataValue); //still show previous value after set the new one } return( <input required type="text" id="ClassName" name="ClassName" onChange={handleClassChange} ></input> //others Input form ) Una vez encontré algunas soluciones como usar setState callback , pero lo probé y no funcionó para mí. Por lo tanto, no sé cómo manejar este problema y estoy atascado durante 2 días. Si alguien tiene alguna idea o solución, me será de gran ayuda. gracias