我试图以编程方式导航到不同的页面,如this.props.history.push('/new-path');
它工作,但我在控制台中收到了弃用警告:
Warning: [react-router] props.history and context.history are deprecated. Please use context.router.
更多关于此问题https://github.com/reactjs/react-router/blob/master/upgrade-guides/v2.0.0.md#changes-to-thiscontext
之后我尝试使用这种新方法this.context.router.push('/new-path')
,但这似乎不是正确的做法。
答案 0 :(得分:13)
也许您忘了将路由器定义为contextType?假设您有一个组件:
class YourComponent extends React.Component {
render() {
return <div></div>;
}
}
您必须在组件下方定义contextTypes,如下所示:
YourComponent.contextTypes = {
router: React.PropTypes.object.isRequired
};