react filter eslint error: unexpected block statement surrounding arrow body

react filter eslint error: unexpected block statement surrounding arrow body

我正在尝试过滤反应中的数组。这是我的代码:

resultArray = myArray.filter((item) => {
  return item.children.length === 0;
});

这给了我一个 eslint 错误: Unexpected block statement surrounding arrow body

所以我将大括号换成了括号:

resultArray = myArray.filter((item) => (
  return item.children.length === 0;
));

这让我在突出显示 return.

时出现意外的标记错误

正确的做法是什么?

因为是一个单一的表达式,你可以这样做:

resultArray = myArray.filter((item) => item.children.length === 0);

是的,正如@DanielSchneider 已经说过的那样:

您可以使用 shorthand(或称为 lambda)箭头函数,如下所示:

resultArray = myArray.filter(
  item => item.children.length === 0 //this is the lambda function
);

因为它是单个表达式和一个 return 值(即使 return 值未定义),您可以使用简写箭头函数。它总是 return 表达式的结果(甚至未定义)。