2016-10-25 13 views
1

私はreact/reduxで何かをするのに苦労しています。React Router経由でデータをコンポーネントに渡す

私の最後の課題の1つは、子コンポーネントから親コンポーネントにいくつかのデータを渡すことでした。私は子供をpropsに呼び出すことができませんでしたparentComponent.props.children.props(私もReact.Children.toArrayで子孫に変換しようとしました)そして、React Routerに付属のデータを読んでいる私の特定の問題の解決策を見つけました。

親コンポーネントでthis.props.location.pathnameを呼び出すことによって、子コンポーネントを見つけることができました。

私はこの宣言でメインにいくつかのデータを渡すことが可能である場合、私は疑問に思う

<Router history={history}> 
     <Route path="/main" component={Main}> 
     <Route path="something" component={Something} /> 
     </Route> 
</Router> 

を次のようにルーティング構造を有しています。ような何か:

<Route path="something" component={Something} data={foo: 'myData'} /> 

そしてMain.render

fooを取得し、これに近いものはありますか?

答えて

1

ルート定義に渡す小道具は、小道具のルートノードからアクセスできます。あなたの何かのコンポーネントで、データの小道具を得ることができるでしょうthis.props.route.data

+0

私のための 'this.props.route.data'はありません。 私は 'this.props.route.childRoutes [#] ['myPropsName']' –

2

クエリパラメータとして 'myData'を渡すことができます。これは、私がReact Routerを使用してコンポーネントに小道具を渡すための個人的な好みです。その後、/main/something?foo=myDataにアクセスした場合、fooにはthis.props.location.query.fooからアクセスできます。

関連する問題