Удалить кеш после мутации в Apollo Client - PullRequest
0 голосов
/ 07 августа 2020

Я хочу сбросить кеш 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], потому что кеш все еще существует.

Это потому, что мне это нужно.

1 Ответ

0 голосов
/ 07 августа 2020

Я удаляю магазин, как показано ниже.

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