【问题标题】:Redux store stops receiving actions when changing to another browser tab切换到另一个浏览器选项卡时,Redux 商店停止接收操作
【发布时间】:2023-04-03 00:47:02
【问题描述】:

我将 React 16.8.6 与 redux 4.0.1 一起使用,但我对 redux 的存储有疑问。 当我切换到另一个浏览器选项卡时,商店会停止调度任何操作。

正常流程:

  1. 点击按钮
  2. 动作 1 已调度(获取某些东西)
  3. 操作 2 已调度(在 DB 中保存一些内容)
  4. 动作 3 已调度(获取某些东西)

当我切换到另一个标签时:

  1. 点击按钮
  2. 已调度操作 1(获取某些内容)
  3. 切换到其他浏览器选项卡或打开其他应用程序
  4. (应用没有收到任何其他操作)

但是当我回到我的应用标签并刷新它时,我可以看到 action 12 应该做的更改。但是,它们没有被我的应用程序捕获,因为它的选项卡未处于活动状态。

由于该应用使用 Firebase 消息传递,我试图将其与 React 服务工作者连接以解决问题,但它不起作用。

我该怎么办?这是 redux 的常见问题吗?

【问题讨论】:

  • 有没有找到解决办法。请更新。

标签: reactjs redux service-worker browser-tab


【解决方案1】:

您可以在某些库中使用持久化 redux 状态,例如(当您在两个选项卡之间共享状态时,此方法也适用)redux-persist,另一方面,如果您想实现自己的库,您可以使用持久性系统,例如本地/会话存储、Redux、rabbitMQ 等,在这篇文章中有一些好的想法Sharing state between tabs

【讨论】:

    猜你喜欢
    • 2021-02-19
    • 2012-02-10
    • 2018-01-14
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多