2016-10-20 13 views
0

componentWillMountメソッドでバックエンドからデータを読み込む親コンポーネントがあります。これは、一度だけ呼び出されるべきである単一の設定エンドポイントに由来します。私は自分の親コンポーネントにデータをロードし、次にこの状態の子コンポーネントの数をラップします。これを文脈化するために、親コンポーネントはダッシュボードのナビゲーションバーおよびフッタであり、子供はこのダッシュボード内のビュー、すなわちダッシュボードページのコンテンツとなる。 React-Routerのドキュメントでは、これを処理する方法として好ましい方法は{this.props.children}であると説明していますが、子供に状態を渡す方法は説明されていません。これをどうやって行うのですか?親(ラッパーコンポーネント)から反応ルータを持つ子に状態を渡すにはどうすればよいですか?

また、それは私のルートを説明する価値があるかもしれません:

<Router history={browserHistory}> 
    <Route path='/' onEnter={redirectWww} /> 
    <Route 
     path='/dashboard' 
     component={DashboardContainerWrapper} 
     onEnter={requireAuth}> 
     <Route path='/dashboard/' component={DashboardIndex}/> 
     <Route path='/dashboard/some/view' component={DashboardSomeView}/> 
    </Route> 
</Router> 

答えて

1

は実はちょうど今日似た何かをしなければなりませんでした。私が行ったのは、React.cloneElementを使用して親コンポーネントの状態を子コンポーネントに注入することでした。レンダリングメソッドで

{React.Children.map(this.props.children, (child) => 
    React.cloneElement(child, {...this.state}) 
)} 
+0

これは動作していないようです。明確にするために、私は親の状態を子の状態として子にコピーしたいと思っています。私が代わりにしなければならないことは、これを2つのエンドポイントに分けることです。 – maxcountryman

関連する問題