反应路由器传递数据

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();
        ...
    }
});

关于传递集合,不太清楚你想实现什么场景,给我们一些细节。无论如何,我相信有比将集合传递给路由器更好的方法。