Har*_*wal 4 node.js reactjs service-worker react-redux
我想对从服务器收到的推送执行操作。我有一个自定义服务工作者,它具有用于推送的事件侦听器。现在我想在收到来自服务器的推送时调度 redux 操作。我的自定义服务工作者目前住在公共文件夹中。而且我无法在此文件中导入商店。任何帮助将不胜感激。谢谢!
不可能在Service Worker 代码中分派 Redux 操作。
但是,您真正想要做的是使用 postMessage API 进行通信。使用 postMessage,您可以在 SW 收到来自服务器的推送时向浏览器 JS 上下文发送消息。您可以找到更多信息,例如。这里https://developer.mozilla.org/en-US/docs/Web/API/Client/postMessage。
为什么会这样?这是不同执行上下文的结果。您的普通 JS 代码(React、Redux、动作等)在浏览器上下文中运行,而您的服务代码在SW 上下文中运行。这两个上下文不共享任何变量或状态。因此,您不能在软件代码中调用任何函数(例如 Redux 操作)。您需要在两个上下文之间进行通信,然后在浏览器上下文中接收到消息后,调用您想要的任何函数。
归档时间: |
|
查看次数: |
925 次 |
最近记录: |