を追加のメタデータを渡す&アクセスするには、次のようにルータv3のリアクト - 私はこのように見えるのルート持ってどのように宣言子ルートの
<Router history={syncHistoryWithStore(browserHistory, store)}>
<Route path='/' component={Widget}>
<Route path='/a' component={A} />
<Route path='/b' component={B} expand />
<Route path='/c' component={C} />
</Route>
<Route path='*' component={FourOhFour} />
</Router>
を、Widget
はA
、B
、または子としてC
をレンダリングします。 B
に私の自身の小物、expand
を追加しました。通常、Widget
は、他の埋め込まれたDOMノードに子をラップします。 expand
が真実であるとき、私はそれがラップされることを望んでおらず、それに応じてそれを扱うことができます。 この目標を達成するにはどうすればよいですか?私Widget
コンポーネントで
- 、
props.routes
事ですが、それは、ツリー内の各ルートの配列が含まれています。 - 私の
Widget
コンポーネントでは、props.route
が問題ですが、一致する子ルートへの参照は私にはありません。- その私が
props.route.child
をしたいように、expand
- その私が
のために盗聴するために、私はこのような何か想定:私はこれが解決される問題であることを確信してい
render() {
const { children, route: { child: { expand } } } = this.props
return (
<div {...someOtherProps}>
{expand ? children : <p id="padded-thing">{children}</p>}
</div>
)
}
を、おそらく私の戦略はオフです。
iは Passing additional parameters in React Routerのように、近くデュープスレッドのカップルを見ましたが、これにレンダリング子ルートを見て親ルートについて尋ねることイムを与え、私はこれで十分異なる です考え出し。ありがとう!
doh!コメントを早めに投稿しましたので、コメントでスニペットをやりましょう。とにかく、私は元の投稿を更新しました。あなたのアプローチはおそらく私のために十分だと思います。 thx :)しかし、私は、ルートレベルで 'ウィジェット'の中からそのラッピングを行う方法を理解するのが好きです – cdaringe