在自定义服务工作线程中调度 redux 操作



我想对从服务器收到的推送执行操作。我有一个自定义服务工作线程,它具有用于推送的事件侦听器。现在我想在收到来自服务器的推送时调度 redux 操作。我的自定义服务辅助角色目前位于公用文件夹中。而且我无法在此文件中导入存储。任何帮助将不胜感激。谢谢!

无法在 Service Worker 代码调度 Redux 操作。

但是,您真正想要做的是使用 postMessage API 进行通信。使用 postMessage,您可以在软件收到来自服务器的推送时向浏览器 JS 上下文发送消息。您可以找到更多信息,例如。这里 https://developer.mozilla.org/en-US/docs/Web/API/Client/postMessage。

为什么会这样? 这是不同执行上下文的结果。您的普通JS代码(React,Redux,actions等(在浏览器上下文中运行,而您的服务代码在SW上下文中运行。这两个 contex 不共享任何变量或状态。因此,您不能调用任何函数(例如。Redux 操作(在您的软件代码中。您需要在两个 contex 之间进行通信,然后在浏览器上下文中收到消息后,调用所需的任何函数。

最新更新