我有一些使用useSubscription
监听订阅中事件更改的Apollo-Hooks代码:
useSubscription<MySubscriptionUpdated>(MySubscription, {
onSubscriptionData: async ({ client, subscriptionData: { data } }) => {
if (!data) {
return;
}
...
这段代码会自动更新响应中的缓存,这在大多数情况下都很好
但是,我需要在收到响应之后但在更新缓存之前进行一些结果处理。
有谁知道使用
useSubscription
钩子的方法,并且没有自动更新缓存吗?响应最终将始终在其中包含
__typename
的实体。 最佳答案
您可以为每个订阅更改fetchPolicy
。默认值为cache-first
。要禁用缓存,必须将fetchPolicy设置为no-cache
。有关更多详细信息,请参见apollo official document。
useSubscription<MySubscriptionUpdated>(MySubscription, {
fetchPolicy: "no-cache",
onSubscriptionData: async ({ client, subscriptionData: { data } }) => {
if (!data) {
return;
}
...