我有一些使用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;
      }
      ...

07-28 01:43
查看更多