2016-03-31 5 views
5

反応し、静的メソッドに走りました。私はどのようなシナリオを考えれば役に立つと思うのだろうと思っていませんでした。静的メソッドは、私が反応ドキュメントを見た

リアクトのコンポーネントを構築するときに静的メソッドが有用である特定のシナリオはありますか?

答えて

6

defaultPropspropTypesは、彼らがすべてのインスタンスのために変更されない、リアクトコンポーネントの静的なメンバです。静的プロパティのhttps://facebook.github.io/react/docs/reusable-components.html

一つの例を参照してください(具体的に反応しない)に作成されたどのように多くのオブジェクトのインスタンスを追跡することができることです。ほとんどの場合、状態を変更する場合、静的メソッドはコードの匂いです。

var Contacts = React.createClass({ 
    statics: { 
    instanceCount: 0 
    }, 
    getInitialState: function() { 
    Contacts.instanceCount++ 
    return {}; 
    }, 
    render: function() { 
    return (<div > Hello { 
     this.props.name 
    } < /div>); 
    } 
}); 
console.log(Contacts.instanceCount) // 0 
ReactDOM.render(< Hello name = "World"/> , 
    document.getElementById('container') 
); 
console.log(Contacts.instanceCount) // 1 

もう1つの例は、定数を格納する方法です。

var Contacts = React.createClass({ 
    statics: { 
    MAX_VALUE:100 
    }, 
    render: function() { 
    return (<div > Hello { 
     this.props.name 
    } < /div>); 
    } 
}); 

if (someValue > Contacts.MAX_VALUE) { 

} 
+0

通常のメソッドを持ち、コンポーネント内で呼び出す方法と静的メソッドを使用する方法の違いは何ですか? – ramesh

+0

Reactは、両方を使用することができ、同じ動作をします。通常、変更されないものは、プロトタイプ上またはコンストラクタ上のプロパティとして使用することができるため、単一のコピーを使用します。主な違いは、プロトタイプにインスタンスを設定した場合、インスタンスごとにオーバーライドできることです。 –

+0

静的メソッドが他のものよりも好都合な特定の例がありますか? – ramesh

関連する問題