繁体   English   中英

意外的函数表达式。 (首选箭头回调)

[英]Unexpected function expression. (prefer-arrow-callback)

我在下面的代码中使用eslint收到三个错误,而该功能似乎按应用程序的预期运行。

错误:

[eslint] Unexpected unnamed function. (func-names)
[eslint] Unexpected function expression. (prefer-arrow-callback)
[eslint] Do not access Object.prototype method 'hasOwnProperty' from target object. (no-prototype-builtins)

码:

const getCount = campaignData.reduce(function(acc, curr) {
  if (!acc.hasOwnProperty(curr.status)) {
    acc[curr.status] = 1
  } else {
    acc[curr.status] += 1
  }
  return acc;    
}, {});

我正在使用ReactJS组件的render中用作{getCount.active}

在运行时,我应该忽略它吗?

那就是短绒棉的意思:

[eslint]意外的未命名函数。 (功能名称)

给函数取适当的名称可以使错误堆栈更易读, error at accumulate error at anonymous更具表达性error at anonymous因此建议您进行以下更改:

 function(acc, curr)

 function accumulate(acc, curr)

或者,您可以遵循以下建议:

[eslint]意外的函数表达式。 (首选箭头回调)

如果您不需要在函数中使用this函数,则可以使用箭头函数语法,它的语法要短一些。

 function(acc, curr) {

变成

 (acc, curr) => {

[eslint]不要从目标对象访问Object.prototype方法'hasOwnProperty'。 (无原型内置)

继承的类可能会意外覆盖该类,因此建议您使用:

 curr.status in acc

但是,所有这些提示实际上只是可读性的一些改进,没有功能上的区别。

在运行时,我应该忽略它吗?

如果您认为“代码可以正常工作就很好”,那么可以,否则不能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM