问题标签 [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.
reactjs - React Apollo:添加新项目时更新列表缓存(带变量)
我很难弄清楚如何更新项目列表(在缓存中)。当使用 . 创建新项目时react-apollo
。
该<CreateItemButton />
组件(在我的情况下)没有嵌套在<ListItems />
组件中。据我所知,我需要通过我的 createItemButton<Mutation />
组件中的更新函数来更新缓存。
问题是当我尝试store.readQuery({query: GET_LIST_ITEMS, variables: ???})
获取当前项目列表(以附加我最近创建的项目)时,这可能有变量/过滤器(用于分页、排序等)。
我怎么知道要传递给store.readQuery
函数的变量,是否有一种“最后使用的变量”,或者你对如何解决这个问题有任何其他建议?
reactjs - 获取`存储错误:应用程序试图写入一个没有提供类型名的对象,但存储已经包含一个具有类型名的对象`
我在更新时遇到存储错误,并且是 apollo 和 graphQL 的新手,所以无法理解我做错了什么。我正在尝试更新一个人的名字和姓氏。这个对象是嵌套的,我将 typeName 作为包装对象传递。如果有人理解这一点并可以提出建议,请告诉我
这是它在阿波罗中的样子:
验证类型:年龄@empId
人员详细信息:人员详细信息类型
第一个:“abc”
empId:10002
年龄:“21”
最后一个:“def”
值是从这里传递的:
我的更新查询看起来像这样:
更新时出现以下错误:
apollo-client - How to disable InMemoryCache for Apollo GraphQL client?
I am trying to completely disable caching on the apollo-client but its not working.
I have tried to set the fetchPolicy to 'network-only' or 'no-cache'. Is there something that I am missing?
service-worker - Apollo 与 Next.js 项目中的服务人员
我在https://www.shandillia.com/blog上有一个 NextJS 原型。显示的数据是从https://dev.schantillia.com/graphql上的 Strapi 安装中提取的。我还在 Github 上https://github.com/amitschandillia/proost/web(前端)有整个代码库。
我正在使用 Apollo 客户端与 graphql 源进行交互。还有一个服务工作者设置为启用 PWA。
一切正常,除了我无法在浏览器中缓存查询结果。Service Worker 能够缓存除 Apollo 查询结果之外的所有内容。有什么办法可以启用吗?目标是:
- 为了能够在服务器上使用某种查询结果的预取。
- 能够通过 service worker 将结果缓存在浏览器中。
与此问题相关的三个文件如下:
阿波罗设置
查询组件
博客页面
有问题的服务人员如下(为简洁起见,已编辑):
请指教!
apollo - Apollo GraphQL 客户端不会在查询中返回缓存的嵌套类型
我正在执行查询以获取PowerMeter
详细信息,其中包含名为Project
. 我这样写查询:
当我第一次执行查询时,project
成功返回。问题是,当我使用相同的参数和默认值fetchPolicy
( cache-first
) 执行后续查询时,project
不再返回。
我该如何解决这个问题?
另外,我打电话readFragment
检查如何powerMeter
保存在缓存中,响应显示powerMeter
已project
保存。
功率计第一次返回
第一次调用功率计后的片段
功率计第二次返回
第二次调用功率计后的片段
编辑 1:获取查询
下面的代码是我获取数据的方式。我正在使用useApolloClient
而不是查询挂钩,因为我正在使用 AWS AppSync,但它还不支持查询挂钩。
编辑 2:获取策略详细信息
当我使用fetchPolice
equalscache-first
或network-only
时,错误仍然存在。当我使用时no-cache
,我没有收到错误。
apollo - 使用 apollo 缓存数据作为 graphql 查询参数
我的 SPA 中有一个页面显示分页的结果列表。可以使用侧栏中的某些复选框来过滤此列表。
我想使用 Apollo 缓存来处理过滤器状态,然后在执行查询时检索这些数据并将它们用作查询的参数。
我什至不知道这样的事情是否可能,有人知道该怎么做吗?
reactjs - 使用 apollo 缓存调用一次存储的 fetch API?
我一直在研究 Apollo GQL。我正在使用 apollo 缓存来减少不需要的 API 调用。我现在面临的问题是,当我更新了数据时,我不应该重新获取数据,因为 API 已经被调用过一次并存储在缓存中。
- 我想做的事情是清除特定查询的缓存或从服务器重新获取数据。!!
- 我无法清除整个缓存,因为我正在调用很多 API
在以下突变调用之后,我必须重新获取数据。
reactjs - 使用`react-apollo-hooks`和`useSubscription`钩子时如何避免“自动更新”缓存
我有一些Apollo-Hooks代码用于useSubscription
监听订阅中的事件变化:
此代码会自动更新响应的缓存,这在大多数情况下都很棒
但是,我需要在收到响应之后,在更新缓存之前进行一些结果处理。
有谁知道使用useSubscription
钩子的方法,而不是自动更新缓存?
响应最终将始终包含一个实体__typename
。
graphql - Apollo 客户端是否缓存 React 中的嵌套对象?
进行以下查询:
有时,运行第二个查询会给我一个缓存版本的bar
. 其他时候,它不会,但我不确定这是因为查询运行多次还是因为这是 React 中 Apollo 客户端的默认行为。
graphql - 为什么我们需要`cacheRedirects`?
我阅读了有关与缓存数据交互的文档,虽然我了解其cacheRedirects
工作原理,但我有点困惑为什么首先需要它。这是我问另一个问题的部分原因:Apollo 客户端是否在 React 中缓存嵌套对象?
我们知道数据很可能已经在客户端缓存中,但是因为它是通过不同的查询请求的,所以 Apollo 客户端不知道这一点。
这是为什么?
为了清楚起见,复制粘贴文档中的示例: