我想在深嵌套子组件之一中使用history.listen
来监听位置更改。
具有this.props.history
的顶级父组件是否应该将道具一直传递给子组件?
我正在使用2.8.1 react-router
我愿意升级到更新的版本,如果它允许我轻松地做到这一点。
答案 0 :(得分:1)
您可以通过获取路由器上下文获得history
。
import React, {PropTypes} from 'react';
class myComponent extends React.Component {
render() {
console.log(this.context.history);
}
}
myComponent.contextTypes = {
history: PropTypes.object
}
export default myComponent;
答案 1 :(得分:0)
import { withRouter } from 'react-router-dom';
class MyComponent extends React.Component {
render() {
// props also has match, location
const { history } = this.props;
...
}
}
export default withRouter(MyComponent);