Магазин Redux перестает получать действия при переходе на другую вкладку браузера

Я использую React 16.8.6 с redux 4.0.1, но у меня проблема с хранилищем redux. Магазин перестает отправлять какие-либо действия, когда я перехожу на другую вкладку браузера.

Нормальный поток:

  1. Нажмите кнопку
  2. Действие 1 отправлено (получить что-то)
  3. Отправлено действие 2 (что-то сохранить в БД)
  4. Действие 3 отправлено (получить что-то)

Когда я перехожу на другую вкладку:

  1. Нажмите кнопку
  2. Действие 1 отправлено (получить что-то)
  3. Перейдите на другую вкладку браузера или откройте другое приложение
  4. (Приложение не получает никаких других действий)

Но когда я возвращаюсь на вкладку своего приложения и обновляю ее, я вижу изменения, которые должны выполнить действия 1 и 2 . Тем не менее, они не были пойманы моим приложением, потому что его вкладка не была активной.

Поскольку приложение использует передачу сообщений Firebase, я пытался соединить его с работником службы React для решения проблемы, но она не работает.

Что мне делать? Это общая проблема с редуксом?

Всего 1 ответ


Вы можете использовать постоянное избыточное состояние с некоторыми библиотеками, такими как (Этот подход работает, когда вы также разделяете состояние между двумя вкладками) redux-persist , с другой стороны, если вы хотите реализовать свою собственную библиотеку, вы можете использовать постоянную систему, такую ​​как local / session Storage, Redux, rabbitMQ и т. д., и в этих постах есть несколько хороших идей.