reactjs - 使用`react-apollo-hooks`和`useSubscription`钩子时如何避免“自动更新”缓存
问题描述
我有一些Apollo-Hooks代码用于useSubscription
监听订阅中的事件变化:
useSubscription<MySubscriptionUpdated>(MySubscription, {
onSubscriptionData: async ({ client, subscriptionData: { data } }) => {
if (!data) {
return;
}
...
此代码会自动更新响应的缓存,这在大多数情况下都很棒
但是,我需要在收到响应之后,在更新缓存之前进行一些结果处理。
有谁知道使用useSubscription
钩子的方法,而不是自动更新缓存?
响应最终将始终包含一个实体__typename
。
解决方案
您可以fetchPolicy
针对每个订阅进行更改。默认值为cache-first
。要禁用缓存,必须将 fetchPolicy 设置为no-cache
. 更多详细信息请参见apollo 官方文档。
useSubscription<MySubscriptionUpdated>(MySubscription, {
fetchPolicy: "no-cache",
onSubscriptionData: async ({ client, subscriptionData: { data } }) => {
if (!data) {
return;
}
...
推荐阅读
- asp.net - 当我想获取来自身份的用户列表时,我的 dbContext 返回 null
- python - 操纵 df.values 是否安全
- raspberry-pi - 在 Raspberry Pi 中使用调制解调器管理器连接数据时出错
- asp.net-core - 如何在 Signalr 中使用常量 ConnectionId?
- c++ - 将值复制到从 C++ 调用的汇编函数中的指针地址(nasm)
- r - 为什么 base R 和 dplyr::arrange() 在输出中给出不同的行名
- javascript - Vue.js 和 Firebase:删除了一个测试用户,现在所有路由都无法访问并且组件不呈现
- org-mode - 如何使用模板和 Pandoc 将 Org 模式文件转换为 ODT?
- pandas - sns.lineplot 上相同的线条颜色
- typescript - 泛型数组中的不同组合泛型值