В моем приложении React я использую react-router-dom
для маршрутизации. У меня есть пользовательский объект history
, который я передаю своему объекту Router
(не BrowserRouter
), чтобы я мог настроить обработчик прослушивания для объекта истории.
import { createBrowserHistory } from 'history';
import auth from './auth';
const history = createBrowserHistory();
history.listen((location) => {
if(location.pathname !== '/login'){
if(!auth.getToken()){
history.push('/login');
}
}
});
export default history
Это хорошо работало в течение последних нескольких месяцев, однако, после недавнего обновления моего node_modules
, внезапное нажатие внутри функции listen
не вызывает обновления DOM (но изменяет URL).
Я понятия не имею, что вызывает это, и я использую history.push
в качестве единственного средства навигации по остальной части приложения, которое все еще работает, поэтому я не знаю, почему оно не работает из этого файла.
Даже при импорте объекта истории в другие файлы .js, которые не являются частью моего дерева компонентов React, можно вызвать history.push
и обновить его.
Любая помощь приветствуется!
Редактировать: Моя react-router-dom
версия пакета ^4.4.0-alpha.0
и React 16.4.0