Реагировать на проблему с навигацией маршрутизатора в Firefox после перезагрузки URL из адресной строки - PullRequest
0 голосов
/ 17 февраля 2020

У меня проблема с навигацией в SPA с React 16.12 и React Router 4.3.1, которая возникает только в браузере Firefox.

Например, начиная с URL / рекомендованных продуктов, я перехожу на URL / формы. Если я перезагружаю страницу / форм, нажимая ввод в адресной строке, и сразу же нажимаю кнопку возврата браузера, URL-адрес изменится на / рекомендованный продукт, но он не обновится sh. Исследование и сравнение поведения между Firefox и Chrome Я заметил, что событие popstate не вызывается в Firefox.

Вот маршруты:

<Switch>
    <Route path="/recommendedProducts" component={RecommendedProducts} />
...
    <Route path="/forms" component={Forms} />
</Switch>

Если вместо перезагрузив страницу / формы таким образом, я нажимаю F5, все в порядке, кнопка возврата браузера работает должным образом.

Почему Firefox не вызывает событие popstate и как сообщить React Router о необходимости обновления sh страница?

РЕДАКТИРОВАТЬ: Я только что обнаружил эту проблему React Router, это именно проблема: https://github.com/ReactTraining/react-router/issues/837

1 Ответ

0 голосов
/ 17 февраля 2020

Похоже, проблема связана с кешем Firefox. Как указано в https://github.com/ReactTraining/react-router/issues/837, определение обработчика события unload отключает его.

Здесь официальные документы: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/1.5/Using_Firefox_1.5_caching

Ранее я пробовал также использовать события pagehow и pagehide, обновляя страницу оттуда, но они не всегда запускаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...