【发布时间】:2021-07-29 12:29:03
【问题描述】:
帮助。我使用反应钩子,当我输入输入时出现错误。
错误:
警告:组件正在将受控输入更改为不受控制。这可能是由于值从已定义更改为未定义引起的,这不应该发生。决定在组件的生命周期内使用受控输入元素还是不受控输入元素。
代码:
const AddUser = () => {
const initialUserState = {
id: null,
name: '',
age: 0
}
const [users, setUsers] = useState(initialUserState)
const handleChange = (e) => {
setUsers({ [e.target.name]: e.target.value })
e.preventDefault()
}
return (
<div>
<input name="name" type="text" value={users.name} onChange={handleChange}/>
<input name="age" type="number" value={users.age} onChange={handleChange}/>
</div>
)}
【问题讨论】:
-
你的句柄改变只是设置了名字或者年龄,所以其他的变成未定义的。如果您只想更改对象中的一个属性,请尝试使用扩展语法。或者对年龄和姓名使用单独的状态。
-
这不是错误,而是警告。
标签: javascript reactjs react-hooks