如何在状态中使用专有名称

时间:2018-11-05 08:15:18

标签: javascript reactjs frontend

我希望在不对参数名称进行硬编码的情况下将错误写入状态。因此,我有一个状态为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 :(得分:1)

通过编写'errors: ' + e.target.name,您可以将该参数名称设置为值true,但您想将其添加到errors对象中。

示例

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

  this.setState(prevState => ({
    [name]: value,
    errors: { ...prevState.errors, [name]: true }
  }));
};