useState在React中更新多个值

问题描述 投票:0回答:1

我有一系列用户数据元素,我正在使用钩子在React组件内部收集这些元素。

const [mobile, setMobile] = useState('');
const [username, setUsername] = useState('');
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [confirmPassword, setConfirmPassword] = useState('');

每个更新如下。

<input type="text"
       className="form-control"
       id="mobile"
       placeholder="Enter a valid mobile number"
       onChange={event => {setMobile(event.target.value)}}/>

是否有使用对象作为变量的更简洁的方法?

javascript reactjs react-hooks
1个回答
1
投票

您应将name属性添加到输入标签。每个名称都必须引用AllValues对象中的键。

const [allValues, setAllValues] = useState({
   mobile: '',
   username: '',
   email: '',
   password: '',
   confirmPassword: ''
});
const changeHandler = e => {
   setAllValues({...allValues, [e.target.name]: e.target.value})
return (
   <input type="text"
       className="form-control"
       id="mobile"
       name="mobile"
       placeholder="Enter a valid mobile number"
       onChange={changeHandler}
   />
   // ...
)
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.