我尝试在交换机中放置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部分,将显示用户列表页面。
请帮助。