如何从路由器组件以外的组件访问路由参数

时间:2016-01-09 21:38:22

标签: reactjs react-router

在React-router 1.0 / 2.0中,可以从Route组件访问路由参数this.props.params - 但似乎没有支持的方法从上面Route组件中深深包含的组件访问参数。

可以通过context.location访问数据类型,但是这个会发出警告,说明这已被弃用。

2 个答案:

答案 0 :(得分:8)

开始in the latest version of React Router,所有上下文数据都已弃用,而不是this.context.router

  

只有名为router的对象才会添加到上下文中。访问this.context.historythis.context.locationthis.context.route均已弃用。此新对象包含history(例如pushreplace)和setRouteLeaveHook提供的方法。

不幸的是,这并不包含location数据,因此您需要自己将其传递给子(非路由处理程序)组件。

答案 1 :(得分:0)

根据2.0.0升级指南,您应根据需要自行将paramslocation传递给子组件。请参阅https://github.com/rackt/react-router/blob/master/upgrade-guides/v2.0.0.md#accessing-location