Слушатель событий PageShow для компонента React не работает должным образом

У меня есть следующий сценарий, где мне нужно запустить какой-то "код" при первом входе на страницу или возвращении к ней с другой страницы.

Причиной этого является функция кэша Safari ( https://webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/), поскольку она кэширует мою страницу и ничего не выполняет.

Я последовал их рекомендации по добавлению прослушивателя событий в событие "PageShow", чтобы я мог проверить, сохраняется ли это событие, а затем запустить то, что мне нужно.

Этот пример в основном то, что я хотел бы иметь:

  • доступ к первой странице... прикрепить слушателя = Круто, у меня это есть.
  • если я выхожу из страницы и возвращаюсь (используя Safari), он запускает моего слушателя на pageshow = Круто, у меня это... почти.
  • слушатель должен быть уволен каждый раз, когда я возвращаюсь на эту страницу = Не круто, мой слушатель срабатывает один раз.

Я использую реагировать и компонент DidMount(), где я готовлю все:

введите описание изображения здесь

Это работает впервые... Я могу перейти со своей страницы и вернуться к ней + выполнить то, что мне нужно.

Проблема в том, что повторение "перейти из моей страницы и вернуться" во второй раз ничего не даст.. похоже, что слушатель удален или что-то в этом роде.

Спасибо за внимание.

1 ответ

Решение

После двух дней попыток найти способ... мой коллега попросил меня попробовать слушателя на "popstate". Я так старался заставить слушателя 'pagehow' работать, что совершенно забыл протестировать его; сработало без нареканий:

window.addEventListener('popstate', function(event) {
Другие вопросы по тегам