Apollo缓存在更改查询变量时不更新
创始人
2024-09-09 10:30:26
0

在使用Apollo客户端的React项目中,可以使用useQuery hook来执行GraphQL查询并从缓存中获取结果。

如果查询中包含变量,当变量值更改时,Apollo客户端查询缓存可能不会更新。这是因为Apollo缓存默认情况下使用查询的哈希值作为键来存储结果,而不是将查询的变量值作为键。

为了解决这个问题,我们需要使用Apollo提供的merge函数来自定义缓存键。我们可以将变量值作为查询的一部分,并使用merge函数来创建一个新的缓存键。

例如,假设我们有一个查询:

query GetUser($id: ID!) {
  user(id: $id) {
    id
    name
  }
}

使用useQuery hook执行查询:

const { loading, error, data } = useQuery(GET_USER, {
  variables: { id: userId },
});

当我们更改变量值时,缓存不会更新:

// change variables
const { loading, error, data } = useQuery(GET_USER, {
  variables: { id: newUserId },
});

// data will still have the previous user's data

为了解决这个问题,我们可以使用merge函数自定义查询的缓存键:

const { loading, error, data } = useQuery(GET_USER, {
  variables: { id: userId },
  // customize cache key with variables
  fetchPolicy: 'cache-and-network',
  nextFetchPolicy: 'cache-first',
  keyArgs: ['id'],
  // merge function to use variables in cache key
  // keyArgs will be passed as arguments to the merge function
  // and return an object used as the new cache key
  // the new cache key will include the variable values
  // so that the cache can be updated when the variables change
  // Note: this example only includes one variable, but you can include multiple keyArgs
  merge(existing, incoming, { args }) {
    const id = args.id;
    return {

相关内容

热门资讯

透视存在!wepoker透视,... 这是一款非常优秀的wepoker透视 ia辅助检测软件,能够让你了解到wepoker透视中牌率当中全...
透视中牌率!wepoker透视... 透视中牌率!wepoker透视版下载,拱趴大菠萝万能辅助器,高科技教程(最初真的是有挂);(需添加指...
透视能赢!wepoker底牌透... 透视能赢!wepoker底牌透视脚本怎样安装,哈糖大菠萝怎么挂,辅助教程(本然真的是有挂);科技安装...
透视黑科技!德普之星有没有挂,... 透视黑科技!德普之星有没有挂,hhpoker外挂靠谱吗,微扑克教程(原本真的有挂);精心打造了俱乐部...
透视中牌率!hhpoker辅助... 透视中牌率!hhpoker辅助软件下载,hhpoker外挂靠谱吗,德州教程(固有有挂);hhpoke...
透视脚本!hhpoker万能辅... 自定义hhpoker万能辅助器系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助...
透视能赢!wepoker脚本下... 透视能赢!wepoker脚本下载,哈糖大菠萝开挂,新版2025教程(真是是有挂);亲真的是有正版授权...
透视游戏!wepoker透视脚... 透视游戏!wepoker透视脚本免费下载,wepoker辅助透视软件,2025教程(本然存在有挂);...
透视私人局!wepoker辅助... 透视私人局!wepoker辅助工具,poker红龙辅助,wepoke教程(好像有挂);1分钟了解详细...
透视规律!hhpoker万能辅... WePoker透视辅助工具核心要点解析‌,透视规律!hhpoker万能辅助器,wepoker私人局辅...