2017-07-06 62 views
1

我開始使用ESlint,當我創造這樣的方法 陣營組成:我是否應該將不使用此方法的方法轉換爲React中的靜態方法?

getWholeQUantityProducts(obj) { 
    return Object.keys(obj) 
     .reduce((sum, key) => sum + parseFloat(obj[key]), 0); 
    } 

它警告我說,"If a class method does not use this, it can safely be made a static function"

然後我做了靜態的,把它放在構造函數之前:

static getWholeQUantityProducts(obj) { 
    return Object.keys(obj) 
     .reduce((sum, key) => sum + parseFloat(obj[key]), 0); 
    } 

現在打電話給我部件內部這種方法我寫this.constructor.methodName

我還沒有看到任何人在反應教程中推薦或使用這些東西。

所以我應該關閉這eslint規則?或者如果不包含寫靜態方法this

回答

0

ESLint規則是創建者創作的最佳實踐。在這種情況下,它看起來更像是一種實用方法,而不是類相關的,因此將它作爲靜態方法導出到實用類中是有意義的。

但用this.constructor.methodName來稱呼它很奇怪。例如。應該看起來像這樣

export class Utils { 

    public static getWholeQUantityProducts(obj) { 
    return Object.keys(obj) 
     .reduce((sum, key) => sum + parseFloat(obj[key]), 0); 
    } 
} 

然後你可以用Utils.getWholeQUantityProducts(obj)來調用它。

+0

默認情況下不公開嗎? (所以不需要寫* public *關鍵字) –

+0

@Kinduser你是對的。似乎它被設置爲默認公開。 –

+1

就我而言,JS中的私有和公有是爲未來保留的,今天不工作。 –

相關問題