从父组件推送到React Router历史记录

时间:2018-11-05 05:14:32

标签: reactjs react-router-v4

我想从应用程序的根级<HashRouter></HashRouter>组件(其中包含作为子级的路由器)控制路由器组件<App> </App>

class App extends Component {
    componentDidMount(){
       // potentially push to history here
    }
    render () {
        <HashRouter></HashRouter>
    }
}

这可能吗? (在4.2.2中使用react-router-dom)

1 个答案:

答案 0 :(得分:0)

非路由组件可以使用withRouter(实际上是<Route children>的包装器)来访问特定于路由器的道具,尤其是history

withRouter组件应位于路由器内部,因此不能应用于App可能在此处推送历史记录任务应委派给<Router>增强的withRouter子组件:

@withRouter
class Child extends Component {
  componentDidMount() {
    this.props.history.push(...);
  }
  render () {
    return null;
  }
}