【问题标题】:How to invalidate cache in apollo?如何使 apollo 中的缓存失效?
【发布时间】:2018-12-05 00:58:18
【问题描述】:

有人知道如何在apollo 中执行缓存失效吗?

我正在解析器中设置缓存提示:

export default (root, args, { userId }, { cacheControl }) => {
  cacheControl.setCacheHint({ maxAge: 60 });

  return userId && Meteor.users.findOne(userId);
};

但如果发生变化并且maxAge 足够大,则不会反映变化。

我现在正在考虑在突变中调用cacheControl.setCacheHint({ maxAge: 0 }),还有其他方法吗?

【问题讨论】:

  • 我遇到了同样的问题,你解决了吗?谢谢。

标签: caching graphql apollo


【解决方案1】:

你可以查看这个:https://github.com/lucasconstantino/apollo-cache-invalidation#readme

你可以使用函数匹配

const randomKeyMatch = key => Math.random() >= 0.5

const update = invalidateFields(() => [
  [randomKeyMatch, 'happy']
])

client.mutate({ mutation, update })

【讨论】:

  • 我认为作者想要使缓存失效应该对客户端透明。但是这个解决方案需要客户做一些事情。
猜你喜欢
  • 2020-09-25
  • 1970-01-01
  • 2013-11-28
  • 1970-01-01
  • 2011-01-13
  • 2017-09-08
  • 2019-04-10
  • 2019-02-03
  • 2018-01-03
相关资源
最近更新 更多