gpt4 book ai didi

Angular Apollo 在突变中使用来自重新获取查询的响应

转载 作者:太空狗 更新时间:2023-10-29 17:58:35 25 4
gpt4 key购买 nike

我正在使用 Apollo 和 GraphQL 开发一个 Angular 项目。我有一个更新帐户列表的突变,其中包含相关的详细信息。成功突变后,我使用 refetchqueries 来查询 API 以获取更新的帐户列表。一切正常,直到这一部分。

this.apollo.mutate({
mutation: mutationCreateNewAccount,
variables: {
accountNumber: this.accountNumber,
accountType: this.accountType,
routingNumber: this.routingNumber,
nameOfAcountHolder: this.name
},
refetchQueries: [{
query: queryAccounts,
variables: { accountNumber: this.accountNumber }
}]}).subscribe(({ data }) => console.log(data),

订阅的“数据”返回突变的响应,但有没有一种方法可以使用也作为此突变的一部分运行的“queryAccounts”返回的数据?

似乎有一种方法可以在 React 中执行此操作,但我在 Angular 中没有成功执行类似的操作。

最佳答案

你提到有一些方法可以在 React 中做到这一点,但我认为这不是真的。

让我解释一下 Apollo 中的突变是如何工作的。

  1. 您使用 refetchQueries 选项运行 apollo.mutate()
  2. 当您订阅它时,会发出 HTTP 请求(在大多数情况下,有时是 WS 或其他一些传输层)
  3. Apollo 收到服务器的响应。
  4. 更新商店。
  5. 您订阅的 Observable 发出结果(您的 console.log(data))
  6. 接下来,refetchQueries 中指定的每个查询都会启动一个新的 HTTP 请求并针对服务器运行。
  7. Apollo 根据每个响应更新商店。
  8. 监听这些查询的组件得到更新的结果

我在这里解释过,在文档中:https://www.apollographql.com/docs/angular/features/cache-updates.html#after-mutations

基本上,refetchQueries 不是获取或访问数据。

关于Angular Apollo 在突变中使用来自重新获取查询的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49798230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com