我希望在不对参数名称进行硬编码的情况下将错误写入状态。因此,我有一个状态为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
这里的语法必须是什么?
答案 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 }
}));
};