我有一个更新组件状态的方法,如下所示:
updateObject = (field) => {
return (e) => {
const obj = _.cloneDeep(this.state.obj);
obj[field] = e.target.value;
this.setState({ obj: obj });
};
}
我收到错误Unexpected block statement surrounding arrow body
指向第一行。为什么我不能有块语句?
答案 0 :(得分:1)
您的代码有效。
这是ESLint arrow-body-style
规则的预期行为。如果return是箭头函数体内唯一的语句,则不需要块语句。
updateObject = (field) => (e) => {
const obj = _.cloneDeep(this.state.obj);
obj[field] = e.target.value;
this.setState({ obj: obj });
}
如果您想为箭头功能保留此样式,可以停用arrow-body-style
规则。
答案 1 :(得分:1)
正确的代码非常简单:
updateProject = (field) => (e) => {
const project = _.cloneDeep(this.state.project);
project[field] = e.target.value;
this.setState({ project: project });
}
块和return语句是多余的。