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