useState для обновления нескольких значений в React - PullRequest
0 голосов
/ 19 января 2020

У меня есть ряд элементов пользовательских данных, которые я собираю внутри компонента 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)}}/>

Есть ли более лаконичный способ сделать это, используя объект в качестве переменной?

1 Ответ

4 голосов
/ 19 января 2020

Вы должны добавить 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}
   />
   // ...
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...