Reactjs 反应路由器,从子组件访问历史对象

Reactjs 反应路由器,从子组件访问历史对象,reactjs,react-router,Reactjs,React Router,我想使用history收听位置更改。在一个深嵌套子组件中收听 具有this.props.history的顶级父组件是否应该将这些道具一直传递给子组件 我使用的是2.8.1路由器 我愿意升级到更新的版本,如果它允许我轻松完成这项工作。您可以通过获取路由器上下文来获取历史记录 import React,{PropTypes}来自'React'; 类myComponent扩展了React.Component{ render(){ log(this.context.history); } } myCom

我想使用
history收听位置更改。在一个深嵌套子组件中收听

具有
this.props.history
的顶级父组件是否应该将这些道具一直传递给子组件

我使用的是2.8.1路由器


我愿意升级到更新的版本,如果它允许我轻松完成这项工作。

您可以通过获取路由器上下文来获取
历史记录

import React,{PropTypes}来自'React';
类myComponent扩展了React.Component{
render(){
log(this.context.history);
}
}
myComponent.contextTypes={
历史记录:PropTypes.object
}
导出默认myComponent;
从“react router dom”导入{withRouter};
类MyComponent扩展了React.Component{
render(){
//道具也有匹配,位置
const{history}=this.props;
...
}
}
使用路由器导出默认值(MyComponent);

我想您使用的是不同的版本,即使在父组件上,我也无法获取此.context.history。嗯。。。奇怪。我已经用2.8.1测试了这段代码。版本和它的工作。确保已在contextTypes和componentReact的
历史
属性中定义了
历史
,路由器将历史对象作为上下文传递给深入叶节点的子节点。使用上下文获取历史对象如何在react router dom v4中实现?