2016-09-06 6 views
1

私は内部化にReact Intlを使用しており、this.props.intl.formatMessage({id: 'some.message.id'}, values)to get a translated stringをrender()メソッドで記述する必要があります。 今、私は_t('some.message.id', values)または類似のようにすることができるので、デコレータはこのためのショートカット機能を提供するように見えるべきですか?React.jsコンポーネントのショートカットメソッドを一般的にデコレータで記述する方法は?

React.Componentを拡張する別のクラスを作成することも、別のクラスにコンポーネントをラップすることもできますが、これは可能な場合はデコレータ(学習と理解の目的)で行いたいと思いますそうする。

function mydecorator(target, key, descriptor) { 
    const method = descriptor.value; 

    descriptor.value = function(...args) { 
    args.push(this.props.intl.formatMessage); // may need `.bind(...)` 
    return method.apply(this, args); 
    } 
} 

使用するには:ここで

答えて

0

はあなたが始めるために何か

@mydecorator 
render(_t) { 
    ... 
} 

デコレータは、その後に渡される引数のリストにthis.props.intl.formatMessageへの参照をプッシュ機能とrenderを置き換えますrender(AFAIKは引数を取らないので、おそらくargs変数を取り出してコードを短縮することができます)への呼び出しで、

id引数などの処理を効率化する引数として中間関数をプッシュすることはもちろん可能です。

関連する問題