我有一台路由器
<Router history={history}>
<div>
<Route exact path='/' component={App} />
<Route exact path='/' component={UserForm} history={history} />
<Route exact path='/test' component={Test} />
</div>
</Router>
所以,当我触发 this.props.history.push('/ test'); 时,我希望看到我的测试组件,但是网址会发生变化,我看到仍然会看到App和UserFrom < strong>直到我在浏览器上点击,然后它的行为符合预期。
我正在调用 this.props.history.push('/ test'); (在UserForm组件上),当URL更改时会调用它。
我看到有人在v4中执行 this.context.history.push('/ test'); ,但我有一个空的上下文
修改
所以我尝试将它包装在路由器()中,因为所有级别的其他答案都没有运气。
export default withRouter(Main);
但是我注意到它是在render()上运行但不在onClick上运行。
getUsers = () => {
}