是否可以查询Apollo客户端缓存以获取客户端上已过滤数据的列表?
在客户端从graphql服务器获取数据之后,可以将数据视为来自Apollo开发工具的本地缓存。
如何在不访问服务器的情况下获得与一组“标签”匹配的“项目”类型的列表?
type Item {
id: ID
text: String
tags: [String]
}
我认为这对于使用Apollo链接状态自定义解析器是可行的,但是到目前为止,还没有找到解决该问题的策略或在任何在线位置找到示例。
我知道Apollo缓存通过已执行的查询来存储数据,并且可以使用ID和.readFragment访问它,但是如果该数据已经存在于客户端缓存中,则应该可以获取以下内容的列表:特定条件下的数据?
更新:
确切要求如下
随着更多使用情况的发生,我们将使大多数项目位于缓存中,从而为大多数数据提供即时过滤体验。
确切的问题是,我们可以使用.readFragment或.readQuery访问记录的原始列表并在客户端中进行即时过滤(如果这样的话/示例)吗?还是有另一种方式看待这个问题?
答案 0 :(得分:1)
可以使用apollo-link-state
来实现这种功能。
example-fetchPolicy可以强制将“内部”查询cache-only
还考虑在组件状态(或other options中进行简单过滤-这全都取决于(共享过滤结果)要求。