簡體   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