2017-09-28 8 views
1

こんにちは、私は反応コンポーネントがあり、私のHOCコンポーネントで何らかの方法でそれを変換したい。 しかし、問題をheres。私はHOCのxxxという別の小道具を作りたいと思っています。この支柱は、タイプオブジェクトのものであろうと、このオブジェクトの特性の1つはそうXXX React HOC - アクセスラップされたコンポーネント機能

ようwomething包ま成分から機能すべきである:{コールバック:ラップされたコンポーネントから機能する 参照}

も可能このですか?事前に

THX

+1

を見ることができると包まれたコンポーネントの機能へのコールバックを行うことができますこれを行う?このアプローチを使用すると、HOCはラップされたコンポーネント内に存在する関数を認識し、両者の間に緊密な結合を作り、HOCを作成する目的を破り、コードをエラーを起こしやすくします。あなたが達成したいことをやるよりも、これよりも良い方法がなければなりません。 –

+0

私はエルマライが答えていることをあなたが望んでいると仮定しています。それは確かに動作しますが、私には意味をなさない。 –

+0

私のユースケースは、このテーブル(基本的に私のアプリのすべてのページ)を含んでいるすべてのコンポーネントのid、value、clickCallback.Soを持つセルの配列など、ある形式のデータを受け入れるサードパーティのテーブルコンポーネントを使用しています。前述のHOCとclickCallbackを追加すると、その実装は毎回異なります。 – Ziker

答えて

2

あなたはWrappedComponent.prototype._myFunction()

const doMagic= (WrappedComponent) => { 
     return class MyMagic extends React.Component { 
      render() { 
       const props = Object.assign({}, this.props , { 
        xxx: WrappedComponent.prototype._myFunction() 
       }); 

       return <WrappedComponent { ...props } /> 
      } 
     }; 
} 

class ClientsPage extends React.Component { 

     _myFunction() { 
      return "Wrapped Component Function Callback Done..!"; 
     } 

     render() { 
      return <div>Hello {this.props.xxx}</div> 
     } 
} 

export default doMagic(ClientsPage) 

あなたがあなたのユースケースを何ここで働くjsfiddle https://jsfiddle.net/12ojjddw/

+0

_myFunction()からprops/stateにアクセスできますか? – Ziker

+0

ClientsPageの状態/小道具を意味しますか? –

+0

yes exatly ...私は、コンポーネントがインスタンス化されたときだけ小道具が渡されるので、私はそれを行うことができないと思う...これの周りに方法がある? _myFunctionは高位関数で小道具を受け取り、別の関数を返すと考えることができますが、これは実際には汚れています – Ziker