问题标签 [apollo-cache-inmemory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
835 浏览

graphql - graphql vue apollo 的本地状态管理

我正在尝试使用 vue apollo 进行本地状态管理,但即使在遵循文档之后我也没有得到任何结果。控制台中没有错误,所以我不确定出了什么问题。

这是我的设置:

我得到空的 todoItems,没有错误。

请让我知道我错过了什么,我没有掌握一些我认为的概念,如果有办法将 vuex 与 apollo 一起使用,那么我也可以这样做。

0 投票
0 回答
383 浏览

graphql - Apollo 缓存解析器是否适用于别名?

接受以下查询:

如您所见,quxbar.

现在采取这些缓存重定向:

qux解析器有用吗?我确定它适用于bar,因为我之前尝试过,但我不知道它是否适用qux或数据只是快速加载。

0 投票
0 回答
119 浏览

graphql - 有没有办法用原始数据预加载 Apollo 的内存缓存?

我们目前没有服务器。我们纯粹在客户端使用 Apollo 客户端apollo-link-stateapollo-link-rest. 我想阻止应用程序的加载状态,因为我可以获得在站点加载期间从 REST 端点获得的原始数据。我能得到的最接近的是使用我们的customFetch处理程序 where IF response exists in cache THEN return new Response() with that data. 问题是这将触发加载状态片刻。我想避免在应用程序中重新渲染。我不能使用writeQuery()它,因为它需要之前应用的所有自定义类型和转换,并且数据集非常复杂。我想要的是在初始化时为我的缓存提供原始的、未处理的数据。

0 投票
1 回答
254 浏览

local-storage - 应该在哪里存储身份验证令牌:Apollo 缓存或本地存储?

由于 Apollo 有 Apollo Cache 用于存储本地数据。我想存储auth token在 Apollo 缓存中而不是本地存储中。通过存储到 Apollo Cache,帮助我在用户注销时清除auth token和其他缓存数据,而无需关心本地存储数据。

我的问题是:如果我存储auth token在 Apollo Cache 中可以吗?因为 Apollo 网站的 Authentication 示例是使用本地存储进行存储auth token,这让我感到困惑。

0 投票
0 回答
16 浏览

apollo-server - 在设置 Apollo 服务器缓存提示时,我如何尊重过滤器?

我的目标是为我的 apollo 节点服务器配置服务器端缓存

我很难理解如何区分查询,具体取决于过滤器。

使用此查询:

如何缓存expensiveGroupAverageQuery,但确保groupA 的查询不会返回 groupB 的缓存数据。

提前致谢。

0 投票
0 回答
141 浏览

reactjs - 如何查询 GraphQL 本地状态以从嵌套结构中检索具有 @client 变量特定值的所有对象

下面给出的是获取产品列表并将其存储在 apollo-client 本地缓存中的查询。它检索每个产品products的列表和列表images

我有一堆productswith selected: true,每个产品都会有一个或多个imageswith selected: true。我的意图是查询本地 GraphQL 缓存,并检索所有产品及其图像,以便我可以根据selected标志过滤它们

这是我到目前为止所尝试的。

我在下面写了查询

我在创建 ApolloClient 时在该部分中编写了上述查询的定义,resolvers如下所示

我正在尝试在组件中使用上述查询,如图所示

缓存被产品填充(通过执行GET_PRODUCTS_QUERY)存在一些网络延迟。因此,当组件首次呈现时,GET_SELECTED_PRODUCTS会抛出错误(如预期的那样),因为产品尚未在缓存中。一旦产品在缓存中,selected当用户点击产品时,产品对象上就会发生一些变化(将字段标记为真)。我的印象是,当这种突变发生时,useQuery 挂钩再次执行GET_SELECTED_PRODUCTS查询以获取最新更新。但这并没有发生。当产品对象发生变化时,如何连接组件以更改和获取最新的查询结果?

0 投票
1 回答
224 浏览

reactjs - 无法使用 useQuery 挂钩为具有一些 @client 变量的远程查询获取数据

下面给出的是获取产品列表并将其存储在 apollo-client 本地缓存中的查询。它检索每个产品products的列表和列表images

我有一堆productswith selected: true,每个产品都会有一个或多个imageswith selected: true

GET_PRODUCTS_QUERY正在由ProductsList获取产品并呈现产品的组件使用。这工作正常。当用户选择某个产品时,selected在本地缓存中将其标记为 true,并且ProductsList组件会重新呈现。到目前为止,一切都很好。

我有另一个组件,我需要使用它GET_PRODUCTS_QUERY来获取产品,但只能从缓存中获取。该组件应该监听缓存中的产品列表,并且每当缓存中的某些内容发生变化时,它应该重新呈现。我尝试以下无济于事

在初始渲染期间,查询被执行并且没有按预期返回。

  • 在 ProductsList 获取产品列表并填充缓存后,我希望在侦听查询时调用渲染函数,但它没有发生
  • 我通过更改其他一些道具来手动影响渲染,以便触发 useQuery。但是我仍然没有从缓存中得到任何产品,尽管它在那里。

谁能解释我在这里出错的地方?

0 投票
1 回答
63 浏览

reactjs - 从 Apollo Store 获取价值

我想访问保存在 Apollo Store 中的值。

现在在我的配置文件组件中,我想访问isAuthenticated缓存的值。

我需要添加什么?

提前致谢。

0 投票
0 回答
662 浏览

angular - 如何使用角度读取 Apollo 客户端中的缓存

update在使用 Apollo Client 进行突变后,我正在使用该函数写入缓存。缓存包含如下所示的 obj,并且工作正常。在此处输入图像描述

但是,我找不到读取缓存中对象的正确方法。我正在使用readQuery文档中提到的,但我找不到任何示例来读取对象之外的对象ROOT_QUERY

我在 Angular 中有以下代码

查询定义如下:

不确定我是否必须修改typeDefsresolvers实例化 Apollo 客户端时?

谢谢

0 投票
1 回答
91 浏览

reactjs - 在 apollo 客户端中使用缓存

我尝试从 apollo 缓存中读取数据(React + Apollo Client 2.6)。

我的代码:

我的查询:

控制台中的结果:

我做错了什么?查询结果在缓存中,为什么我无法检索数据?