反应路由器传递数据
react router pass data
我有一个简单的 React 路由器:
<Route handler={AppRoot}>
<Route name="about" handler={About} />
<Route path="/projects" handler={Projects} />
<Route path="/projects/experiments" handler={Projects} />
</Route>
我对两条不同的路线使用相同的处理程序。在组件中,我想相应地做不同的事情。我怎样才能做到这一点?我应该 window.location
检查电流 url 吗?这听起来不对。请注意,我不想在这里使用参数。
我的第二个问题是关于传递数据的:
<Route path="/projects" handler={Projects} projects={projects} />
以上示例不起作用,如何将集合从路由器传递到组件?
您可以使用上下文访问项目组件中的路由器,然后获取路由器的当前路径:
var Projects = React.createClass({
contextTypes : {
router : React.PropTypes.func
},
render : function () {
var routerPath = this.context.router.getCurrentPath();
...
}
});
关于传递集合,不太清楚你想实现什么场景,给我们一些细节。无论如何,我相信有比将集合传递给路由器更好的方法。
我有一个简单的 React 路由器:
<Route handler={AppRoot}>
<Route name="about" handler={About} />
<Route path="/projects" handler={Projects} />
<Route path="/projects/experiments" handler={Projects} />
</Route>
我对两条不同的路线使用相同的处理程序。在组件中,我想相应地做不同的事情。我怎样才能做到这一点?我应该 window.location
检查电流 url 吗?这听起来不对。请注意,我不想在这里使用参数。
我的第二个问题是关于传递数据的:
<Route path="/projects" handler={Projects} projects={projects} />
以上示例不起作用,如何将集合从路由器传递到组件?
您可以使用上下文访问项目组件中的路由器,然后获取路由器的当前路径:
var Projects = React.createClass({
contextTypes : {
router : React.PropTypes.func
},
render : function () {
var routerPath = this.context.router.getCurrentPath();
...
}
});
关于传递集合,不太清楚你想实现什么场景,给我们一些细节。无论如何,我相信有比将集合传递给路由器更好的方法。