У меня проблема с реакцией. с формой я создал больше входных данных, которые контролируются. Я создал функцию, которая запускается при изменении формы. который но обновляет состояние. но реакция дает мне ошибку.
VM2529 react_devtools_backend.js:4026 Warning: A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component.
Функция handleChangeEvent:
let DefaultValue = {
firsName: '',
lastname: '',
email: '',
message: ''
}
const [output, setOutput] = useState(DefaultValue)
const handleChangeEvent = (e) => {
setOutput({ [e.target.name]: e.target.value });
}
Спасибо за ваш ответ.





setOutput({ [e.target.name]: e.target.value });
Это не будет объединено со старым состоянием, оно будет заменять старым состоянием. Поэтому, если они изменят lastName, новое состояние будет { lastName: "some string" }, а все остальные значения будут неопределенными.
Вместо этого вам нужно скопировать все остальные значения из старого состояния:
setOutput(prev => ({
...prev,
[e.target.name]: e.target.value
});
Идеально все работает отлично. Я понял свою ошибку.
Я думаю, вы не публикуете достаточно кода, чтобы кто-либо мог рассмотреть вашу проблему.