Apollo 客户端和在线/离线事件
Posted
技术标签:
【中文标题】Apollo 客户端和在线/离线事件【英文标题】:Apollo client and on/offline events 【发布时间】:2019-12-09 14:53:30 【问题描述】:我从最近几天开始就在寻找这个,几乎把我所有的头发都扯掉了!甚至不确定它是否可能与 apollo-client 一起使用。
是否有一个钩子/发布订阅/事件,我可以使用它来了解应用何时离线以及何时上线?我会认为,因为阿波罗在内部处理这些事情,它会提供一些东西来挂钩。
对于我的小 poc,获取策略设置为“无缓存”并尝试将“notifyOnNetworkStatusChange”设置为 true 和 false,但没有运气。
到目前为止,我已经尝试过以下操作:
使用 apollo-link-error :尝试使用网络错误但它没有触发。 在<Query ..>
上:尝试使用 OnError 但没有触发
在<Query ..>
结果:尝试使用 NetworkStatus,但设置为 1 或 7 都无济于事。
非常感谢任何帮助。
P
【问题讨论】:
你到底想做什么? Most browsers 已经支持events for that。 我是因为我缺乏使用 apollo 的经验,但是 a)我们希望向用户显示应用程序处于离线状态的状态,这可以通过您所说的轻松完成 b)有反应-table 组件在分页数据中表现不佳。所以我们想做的是当应用离线时从缓存中获取数据(如果有的话)。 听起来你可以just use a hook,而对于后者,只需相应地设置网络策略。 【参考方案1】:我们能够通过 2 个过程实现这一点,如上所述,第一个使用浏览器事件检查网络可用性,第二个,让您的服务器通过 ping 它返回其在线状态,因为即使您可以访问互联网,您的服务器也可能关闭。
【讨论】:
以上是关于Apollo 客户端和在线/离线事件的主要内容,如果未能解决你的问题,请参考以下文章