我如何在未配置为路由的子组件中使用withRouter工作

时间:2018-10-19 22:30:47

标签: reactjs routing react-redux higher-order-components

我只想执行一些常规操作。当我单击网站徽标时,应该带我进入主页。无论我是否在网站的第三页上,单击徽标后,我都应该能够看到我的主要组件。这是一个react-redux应用程序。我尝试使用Router高阶组件访问其history.push()方法,但出现错误“无法在路由器外部定义withRouter()”。我尝试了所有解决方案,但是无论如何它都向我显示该错误。有什么方法可以帮助我实现路由功能?在redux store中有什么要导入的东西吗?徽标组件是我的子组件,它不包含在路由配置中。

Content.js 

const Content = (props) => {
    return (
        <Router>
          <div>
            <Route exact={true} path="/" component={Demo 1} />
            <Route path="/demo2" component={Demo 2} />
            <Route path="**" render={() => (
              <Redirect to="/" />
            )} />
          </div>
        </Router>
    );
}

Header.js

    class Header extends Component  {

     constructor(props) {
         super(props);
       }

      render(){
      return (
        <div  >
          <div >
            <img src="/images/logo.png" />
          </div>
          <div className="header">
            <span className="logout-btn">logout</span>
          </div>
        </div>
      );
    }}
    export default Header


App.js

> class App extends Component {   
render() {`

    return (

      <div className="wrapper">
        <Header />
        <Content></Content>

      </div>
    );
  }
}

我想单击图像(位于Header Component中),并且希望演示Demo 1 Component,因为它是我的主页。

0 个答案:

没有答案