Я использую значок пользовательского интерфейса в качестве кнопки выхода из системы. Я использую его следующим образом:
function logout(props:any){
localStorage.removeItem("token");
return(
<Redirect to="/login" />
)
//props.history.push("/login");
}
<ExitToAppIcon onClick={logout}></ExitToAppIcon>
Когда я нажимаю на значок, токен удаляется из localStorage, но не перенаправляется на страницу /login
, и если вместо этого я использую строку props.history.push("/login");
из Redirect
, страница падает и выдает мне эту ошибку:
TypeError: undefined не является объектом (оценивает 'props.history.pu sh')
App.tsx:
const token = localStorage.getItem('token');
export default function App() {
return (
<div>
<BrowserRouter>
<Switch>
<Route exact path='/' component= {HomePage}></Route>
<Route path='/login' component= {LoginPage}></Route>
<PrivateRoute
path='/panel'
isAuthenticated={token}
component={PanelHomePage}
/>
<Redirect from='*' to='/404' />
</Switch>
</BrowserRouter>
</div>
);
}
Как устранить проблему с перенаправлением?