У меня есть приложение React со следующей упрощенной структурой:
function App(props) {
return (
<Navbar />
<Router>
<Route exact path="/profile/" component={Profile} />
<Route exact path="/" component={Home} />
</Router>
);
}
В компоненте Navbar
у меня есть кнопка для logout
, что означает, что мне нужно:
- Удалите токен аутентификации из хранилища (просто выполните logi c для общего случая) и
- Перенаправьте пользователя на страницу входа.
Я попытался использовать onClick
из эту кнопку и используйте this.props.history.push('/')
, чтобы изменить путь, но это не работает (он жалуется, что history
- это undefined
), поскольку моя панель навигации определена вне маршрутизатора.
Мой вопрос: Можно ли переместить Navbar
внутрь компонентов моего маршрутизатора и повторить его, пока он одинаков на всех страницах? Или есть какое-нибудь решение с защитой от дублирования, которое я могу использовать для изменения пути в моем браузере?