无论响应如何,我都想在击中一些后端服务URL后重定向到管理主屏幕。
我已经使用Redirect of react-router-dom模块来实现此任务。但是我没有任何屏幕。
用户登录组件:
handleSubmit = async event => {
event.preventDefault();
const user = {
email: this.state.email,
password: this.state.password
};
await this.props.dispatch(authActiokns.authenticate(user.email, user.password));
return <Redirect exact to="/adminHome" />;
}
路线组件:
{
render() {
return (
<div>
<Header />
<Switch>
{
loggedIn
? <Route exact path="/adminHome" component={AdminHome}></Route>
: <Route exact path="/" component={Login}></Route>
}
</Switch>
<Footer />
</div>
);
}
}
function mapStateToProps(state) {
return { loggedIn: authSelectors.getLoginDetails(state).loggedIn }
}
基本上,我希望用户登录后显示管理组件,但只能使用“路由”。但是,这是此问题的另一部分,成功登录后,除非用户手动注销,否则我不应该返回登录屏幕。因此,我想重定向用户(如果按下后退按钮),而注销后又如果他按下前进按钮,则希望用户在登录屏幕上保留。尽管我以前已经为此写过逻辑,但是它在工作,但在这种情况下不起作用。