箭头主体周围的意外块语句

Unexpected block statement surrounding arrow body

我正在使用 "eslint-config-airbnb": "^6.1.0", 来保持我的 JavaScript 清洁。

我的 linter 对看似合法的代码不满意:

这似乎是一个 ongoing issue。有没有人对 OCD 开发人员有任何关于如何同时解决这个问题的建议?也许禁用此规则或其他方式?

单个表达式不需要块语句。

this.state.todos.filter(filterTodo => filterTodo !== todo);

补充一下 Kevin 的回答,错误与您的 eslint 配置有关。也就是说,如果 arrow-body-style 选项设置为 true,则 OP 是正确的。另一个例子是这样的:

    return this.state.greetings.map((name) => {
        return <HelloWorld key={name} name={name} />;
    });

没有 arrow-body-style 选项,根据 Kevin 的回答,不需要块语句 ( { return ...} )。

这实际上提出了一个新问题,即哪种风格更合适。

进一步参考:http://eslint.org/docs/rules/arrow-body-style

如果你真的不想在块语句中包装箭头函数,那么你可以关闭。

module.exports = {
  extends: "airbnb-base",
  rules: {
    "arrow-body-style": 0
  },
  "env": {
    "jest": true
  }
};