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]
之外的所有其他属性都将被删除。是的!!我刚刚发现这一点