首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Apollo链路状态缓存实现客户端过滤

使用Apollo链路状态缓存实现客户端过滤
EN

Stack Overflow用户
提问于 2018-09-11 16:00:38
回答 1查看 1.6K关注 0票数 0

是否可以查询Apollo客户端缓存以获取客户端上已过滤数据的列表?

在客户端从graphql服务器获取数据之后,可以从Apollo开发工具中看到数据在本地缓存中。

我如何才能在不去服务器的情况下获得与一组“标签”相匹配的“项目”类型的列表?

代码语言:javascript
运行
复制
type Item {
 id: ID
 text: String
 tags: [String]
}

我假设这对于Apollo-link-state自定义解析器是可行的,但是到目前为止,还没有能够弄清楚它的策略,或者在网上找到一个例子。

我知道Apollo缓存了已经执行的查询的数据,并且可以使用ID和.readFragment访问它,但是如果数据已经存在于客户端缓存中,那么应该可以获得特定条件下的数据列表吗?

更新:

具体要求如下

  1. 从服务器获取getItem的前100个结果
  2. 用户按客户端上的某些标记筛选结果
  3. 显示已从100条记录中筛选的项目已将记录与服务器的筛选条件相匹配,以填充页面的其余部分,最多可达100个项目。
  4. 允许根据筛选条件进行分页。

随着更多的使用发生,我们将在缓存中的大多数项目提供对大多数数据的即时过滤体验。

确切的问题是,我们是否可以使用.readFragment或.readQuery来访问原始记录列表,并在客户端进行动态过滤(如果可以,如何进行过滤/示例)?或者有其他方式来看待这件事?

EN

Stack Overflow用户

回答已采纳

发布于 2018-09-11 18:33:03

这类功能可以使用apollo-link-state来实现。

example -‘内部’查询可以被fetchPolicy强制为cache-only

还要考虑在组件状态(或other options )中进行简单过滤-这完全取决于(共享过滤结果)要求。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52271313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档