在下面的代码中,我用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}
。
正在运行,我应该忽略它吗?
答案 0 :(得分:7)
这就是短毛绒的意思:
[eslint]意外的未命名函数。 (功能名称)
为函数赋予专有名称可以使错误堆栈更易读,error at accumulate
比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
但是所有这些提示实际上只是可读性的一些改进,没有功能上的差异。
正在运行,我应该忽略它吗?
如果您认为“代码可以正常工作就很好”,那么可以,否则不可以。