在<Switch />中添加两个HOC组件不起作用

时间:2020-05-08 04:43:01

标签: reactjs switch-statement

我尝试在交换机中放置2个HOC,但只有第一个路由器被调用,第二个未被调用。

 // if user is not login, show login page, otherwise add a side bar to children and show up    
    @inject("userStore")
    @observer
    class Auth extends React.Component {
      render() {
        let { userStore, children } = this.props;
        return userStore.isLogin ? <CoreLayout>{children}</CoreLayout> : <Login />;
      }
    }

    // if user is not login, show login page, otherwise show children
    @inject("userStore")
    @observer
    class AuthWithoutLayout extends React.Component {
      render() {
        let { userStore, children } = this.props;
        return userStore.isLogin ? children : <Login />;
      }
    }
    export { Auth, AuthWithoutLayout };

“开关”部分:

    <ConfigProvider locale={locale}>
        <Switch>
          <Route exact path="/" component={Login} />
          <AuthWithoutLayout>
             <Route path="/switch-role" component={SwitchRole} />
          </AuthWithoutLayout> 
          <Auth>
              <Route path="/user-list" component={UserList} />
          </Auth>
        </Switch>
   </ConfigProvider>

如果我向浏览器输入/ localhost:3000 / switch-role,则子页面可以正确显示,但是,如果我输入/ localhost:3000 / user-list,则会看到黑页。如果删除AuthWithoutLayout部分,将显示用户列表页面。

请帮助。

0 个答案:

没有答案