我正在编写带有认证系统的web应用程序。登录时,react-router成功地将我从/login重定向到/home(受保护的路由)。但是当我点击注销按钮时,它将我重定向到/[object%20Object]而不是/login。有什么问题吗?
注销按钮:
<MenuItem
onClick={() =>
{
history.push(`/login`);
store.logout();
handleMenuClose();
}}>
Log out
</MenuItem>
路由器:
<BrowserRouter>
{store.isAuth ? <ButtonAppBar /> : null}
<Switch>
<Route path={LOGIN_ROUTE}>
{!store.isAuth ? <Login/> : <Redirect to={{pathname: HOME_ROUTE}}/>}
</Route>
<ProtectedRoute path={HOME_ROUTE} exact>
{store.isAuth ? <Home/> : <Redirect to={{pathname: LOGIN_ROUTE}}/>}
</ProtectedRoute>
<Route path={REGISTRATION_ROUTE}>
{!store.isAuth ? <Register/> : <Redirect to={{pathname: HOME_ROUTE}}/>}
</Route>
<Route>
<h1>404 Not Found</h1>
</Route>
</Switch>
</BrowserRouter>
试着把history.push()
放在handleMenuClose()
之后
<MenuItem
onClick={() =>
{
store.logout();
handleMenuClose();
history.push(`/login`);
}}>
Log out
</MenuItem>