如何在没有父子关系的反应路由器中将道具从一个组件传递到另一个组件?

时间:2016-05-31 07:44:48

标签: reactjs react-router

<Router>
    <Route path="/" component={ Layout }>
        <IndexRoute component={ Home } />

        <Route path="packages" component={ Package }/>
        <Route path="packageDetail/:packageId"   component={ PackageDetail } />

        <Route path="*" component={ NotFound } />
    </Route>
</Router>

如何将包从包传递到没有父子关系的packageDetail?

2 个答案:

答案 0 :(得分:1)

使用Redux或任何其他Flux系统使全局应用程序状态填充反应组件与常见道具。

答案 1 :(得分:0)

它应该与React路由器有什么关系吗?这完全取决于您使用的Flux / Store实现(Alt.js,Redux或其他)。如果你在包内并做某事,那么它应该在一些商店中注册(例如,如果你有Alt.js,你有很多商店的PackageStore - 如果你使用Redux并且有一个全局状态,那就更容易了), PackageDetails和Package都应该使用的地方。因此,即使您要更改视图,它仍应具有访问权限。

虽然在你的情况下我仍然会将路由更改为更多

<Route path="package" component={ Package }>
   <Route path="package-id" omponent={ PackageDetails } />
</Route>