Javascript 如何在state中生成dinamically参数名

Javascript 如何在state中生成dinamically参数名,javascript,reactjs,frontend,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

我希望在没有硬编码参数名称的状态下写入错误。所以我有一个状态为
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

这里的语法必须是什么?

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

示例

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

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

我这样做的:this.setState({[e.target.name]:值,错误:{[e.target.name]:false});可以吗?@AndrewFleyer如果这样做的话,
错误
对象中除
[e.target.name]
之外的所有其他属性都将被删除。是的!!我刚刚发现这一点