Как сбросить состояние Redux во всех сеансах браузера (вкладки) - PullRequest
1 голос
/ 18 октября 2019

Итак, предположим, что у пользователя открыто несколько вкладок, каждая из которых будет иметь свой собственный сеанс (состояние). Я сохраняю токен доступа пользователя в Redux и Local Storage. Потому что я не хочу каждый раз проверять локальное хранилище, если токен доступа существует в Redux. Но при выходе из системы он удаляется из локального хранилища и из текущего сеанса Redux. Но если у пользователя открыто несколько вкладок, токен доступа сохраняется на других вкладках до обновления страницы. Как я могу удалить что-то из всех состояний Redux на разных вкладках? Так что, если вы выходите из одной вкладки, вы будете выходить из всех.

Ответы [ 2 ]

2 голосов
/ 18 октября 2019

Вы можете использовать redux-state-sync https://github.com/AOHUA/redux-state-sync, чтобы решить эту проблему. Это событие широковещательной передачи, которое будет отслеживаться другими вкладками, и состояние будет оставаться одинаковым для всех вкладок.

Подробнее см. В документах.

0 голосов
/ 19 октября 2019

В то время как синхронизация состояний состояний решает проблему путем синхронизации состояния на разных вкладках, я бы сказал, что использование BroadcastChannel (см. Второй ответ здесь Связь между вкладками или окнами ) будет более понятным и простым.

В конечном итоге вы хотите общаться с другими вкладками исключительно путем передачи сообщения «Выйти сейчас», а не синхронизировать все хранилища.

Это не проблема, связанная с редуксом. Тот факт, что вы хотите отправить действие на других вкладках, - это просто детали реализации, это может быть все, что делает JS.

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