Как сделать динамическое имя в государственном - PullRequest
0 голосов
/ 05 ноября 2018

Я хочу, чтобы ошибки записывались в состоянии без жесткого кодирования имен параметров. Итак, у меня есть объект в состоянии errors: {}, где я хочу зарегистрировать ошибки, появляющиеся при заполнении формы.

При ошибке в поле email должно быть errors: { email: true }

state = {
    errors: {},
    owner: owner.Company,
    fio: null,
    company: null,
    phone: null,
    fax: null,
    email: null,
    adress: null
}

onChange = (e) => {
    const value = e.target.value;
    this.setState({ [e.target.name]: value, ['errors: ' + e.target.name]: true });
}

Но, таким образом, результат в таком состоянии

errors: {…}
Empty object
errors:company:true
errors:fio:true
errors:phone:true

Какой здесь должен быть синтаксис?

1 Ответ

0 голосов
/ 05 ноября 2018

Написав 'errors: ' + e.target.name, вы задаете для этого параметра значение true, но вместо этого хотите добавить его в errors объект.

Пример

onChange = (e) => {
  const { value, name } = e.target;

  this.setState(prevState => ({
    [name]: value,
    errors: { ...prevState.errors, [name]: true }
  }));
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...