在 React 的服务工作者推送事件中刷新页面的一部分
Refresh part of page in a service worker push event in React
我有以下情况:我有一个带有 antd 选项卡的网页,我需要在 service worker 推送事件中分别刷新这些选项卡中的每一个。当我在事件侦听器中使用 client.navigate() 或 client.openWindow() 时,整个页面都会刷新。我找到了一个使用 React Router 的解决方案来在 url 中传递参数,但我不喜欢它,因为我不希望 url 发生变化,而且我还需要将更多的道具传递给在两个选项卡中共享的页面。另外,我如何设法调用路由渲染器或带有来自服务工作者文件的道具的组件。我使用 React、Typescript 和 antd。
结构如下:
- Main.tsx - 路由器路由页面
- service-worker.ts - service worker 方法和函数
- SomePage.tsx - 我需要刷新页面
- 其他页面组件等
已解决...
经过一些探索后,我在 service worker 中使用了 client.postMessage
,在结果页面上我使用了 navigator.serviceWorker.addEventListener('message', (ev))
,在那里我可以从 service worker 获取数据并在我的组件中使用它我需要的以及更多。
我有以下情况:我有一个带有 antd 选项卡的网页,我需要在 service worker 推送事件中分别刷新这些选项卡中的每一个。当我在事件侦听器中使用 client.navigate() 或 client.openWindow() 时,整个页面都会刷新。我找到了一个使用 React Router 的解决方案来在 url 中传递参数,但我不喜欢它,因为我不希望 url 发生变化,而且我还需要将更多的道具传递给在两个选项卡中共享的页面。另外,我如何设法调用路由渲染器或带有来自服务工作者文件的道具的组件。我使用 React、Typescript 和 antd。 结构如下:
- Main.tsx - 路由器路由页面
- service-worker.ts - service worker 方法和函数
- SomePage.tsx - 我需要刷新页面
- 其他页面组件等
已解决...
经过一些探索后,我在 service worker 中使用了 client.postMessage
,在结果页面上我使用了 navigator.serviceWorker.addEventListener('message', (ev))
,在那里我可以从 service worker 获取数据并在我的组件中使用它我需要的以及更多。