2017-07-06 1 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のプライベートとパブリックは将来のために予約されており、今日は動作しません。 –

関連する問題