加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – React Apollo:一个查询,多个参数 – 如何缓存?

发布时间:2020-12-15 20:11:28 所属栏目:百科 来源:网络整理
导读:我很困惑. 假设我目前有以下查询: export const getPokemon = gql` query getPokemon($filters: AssetFilters) { pokemon(filters: $filters) { name,generation,exp } }`; 默认情况下,不传递任何过滤器,因此返回所有内容. 现在,我想用过滤器重新获取: thi
我很困惑.

假设我目前有以下查询:

export const getPokemon = gql`
  query getPokemon($filters: AssetFilters) {
    pokemon(filters: $filters) {
      name,generation,exp
    }
  }`;

默认情况下,不传递任何过滤器,因此返回所有内容.

现在,我想用过滤器重新获取:

this.props.refetch({
  filters: {
    generation: '3rd'
  }
});

以上似乎覆盖了原始查询的本地缓存!

我正在编写一个离线优先应用程序,我希望这些不同的过滤排列可以单独缓存,而不是覆盖原始缓存.

我如何克服这个缓存难题并让Apollo分别用不同的参数缓存这些查询?

解决方法

Apollo根据调用它的参数分别缓存结果中的每个字段.如果使用不同的参数调用相同的字段两次,则它将具有两个缓存条目.

使用Apollo Devtools,您可以看到缓存的确切内容.如果确定使用不同参数调用查询会覆盖初始缓存内容,则应考虑使用复制在Apollo Client GitHub存储库中提交问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读