【问题标题】:Remove cache after mutation in Apollo Client在 Apollo 客户端中突变后删除缓存
【发布时间】:2020-11-27 08:20:10
【问题描述】:

我想在突变后重置 apollo-client 缓存。

const [loadDelete] = useMutation(REMOVE_PRODUCTS, {
  update(cache, result) {
    // here... how to remove cache?    

  },
})

我该怎么做?

我试过了……

cache.restore()
cache.resetStore()
cache.client.reset()

以上都不起作用。


我有基于页面的查询。如果我单击第 1、2、3 页。并且缓存会

page1: [a1, a2, a3, a4, a5]
page2: [b1, b2, b3, b4, b5]
page3: [c1, c2, c3, c4, c5]

在这种情况下,如果我删除第 1 页的所有元素,我会从服务器获取最新数据,缓存将更新如下:

page1: [b1, b2, b3, b4, b5]
page2: [b1, b2, b3, b4, b5]
page3: [c1, c2, c3, c4, c5]

这一次,如果我点击page2,它应该会显示[c1, c2, c3, c4, c5],但它会显示[b1, b2, b3, b4, b5],因为缓存仍然存在。

那是因为我需要这个。

【问题讨论】:

    标签: graphql apollo-client


    【解决方案1】:

    我像下面这样删除商店。

    const [loadDelete, { client }] = useMutation(REMOVE_PRODUCTS, {
      update(cache, result) {
        client.resetStore().then(() => { 
           // bla bla
        })
      },
    })
    

    【讨论】:

      猜你喜欢
      • 2020-02-03
      • 2020-11-21
      • 2022-11-11
      • 2021-03-21
      • 2021-10-06
      • 2017-03-18
      • 2019-02-17
      • 2018-07-13
      • 2017-09-06
      相关资源
      最近更新 更多