我创建了像这样扩展Route的PrivateRoute类:
class PrivateRouteContainer extends Route {
render() {
let component = super.render();
let {user, path} = this.props;
let match = this.state.match;
if (match) {
if (user.auth.isLogin) {
return component;
} else {
return <Redirect to='/login' />;
}
} else {
return null;
}
}
};
并像
一样使用它 <PrivateRouteContainer exact component={PanelContainer} path={ '/user' } />
<PrivateRouteContainer component={OrderContainer} path={ '/user/order' } />
但我认为我错过了一些东西,因为当哈希状态发生变化时,渲染的内容仍然相同并刷新浏览器,它可以从容器渲染中获得正确的内容。
需要一些帮助来找出我错过的内容:)
答案 0 :(得分:0)
class PrivateRouteContainer extends Route {
render() {
let {user, path} = this.props;
let match = this.state.match;
if (match) {
if (user.auth.isLogin) {
return super.render();
} else {
return <Redirect to='/login' />;
}
} else {
return super.render();
}
}
};