React路由器将我重定向到/[object%20Object]而不是/login



我正在编写带有认证系统的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>

最新更新