如何将其他数据传递给路由?

时间:2018-01-11 18:11:14

标签: reactjs react-router react-router-redux react-router-dom

我有一堆react-router路由,如下所示:

<Route path="/users" component={UsersIndex} exact />
<Route path="/users/new" component={UsersNew} />
<Route path="/users/:id" component={UsersEdit} />
<Route path="/posts" component={PostsIndex} exact />
<Route path="/posts/new" component={PostsNew} />
<Route path="/posts/:id" component={PostsEdit} />
<Route path="/blogs" component={BlogsIndex} exact />
<Route path="/blogs/new" component={BlogsNew} />
<Route path="/v/:id" component={BlogsEdit} />

我使用location通过withRouter对象访问路线信息。我希望能够知道哪个&#34;区域&#34;我随时都在。我现在可以通过查看路线是否以某个值开始(例如&#34; / users&#34;)来做到这一点,但这看起来很糟糕。我希望能够在定义每条路线时传递其他信息 - 在本例中为区域 - ?或许有更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以将其他道具传递给组件,但您需要更改路线定义以使用render而不是component

<Route path="/users" render={props => <UsersIndex {...props} area="users" />} exact />
<Route path="/posts" render={props => <PostsIndex {...props} area="posts" />} exact />
<Route path="/blogs" render={props => <BlogsIndex {...props} area="blogs" />} exact />