问题标签 [apollo-angular]

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 投票
0 回答
103 浏览

jestjs - 为什么 Angular 规范文件中的 ApolloTestingModule 会开玩笑抛出:“无法读取未定义的属性‘使用’?

我正在尝试结合 Angular、Jest 和 Apollo。

我的 Spec 文件遵循此处文档中描述的结构。

当我像这样开玩笑时:jest --watchAll一切正常。但如果我喜欢这样:jest --watchAll --collectCoverage,所有带有 apollo 测试模块的规范文件都会失败,并显示:

(第 59 行在组件构造函数内)。

我希望有人可以帮助我理解此错误消息的含义,以及为什么它在我收集覆盖范围时才出现?

0 投票
0 回答
834 浏览

caching - 使用 apollo angular 调用 readQuery 后的“不变违规”

我只是在测试一个简单的案例,我可以在其中添加猫并显示猫的详细信息。但我收到了这个错误 bundle.esm.js:805 Invariant Violation: Can't find field color on object { "id": "5cf74600ed38a91e472e0e20", "name": "Rose", "breed": "Italian", "__typename": "Cat" }

当我添加新猫后尝试更新缓存时

this.apollo.mutate<CreateCatMutationResponse>({ mutation: CREATE_CAT_MUTATION, variables: { name: this.name, breed: this.breed, color: this.color }, // awaitRefetchQueries: false, update: (store, {data: {createCat}}) => { // Read the data from our cache for this query. const data: any = store.readQuery({query: cats, variables: {id: createCat.id}});

因为在我试图添加一只新猫的页面中,它只显示了 2 个属性,即名称和品种,而不是颜色:

this.allCat = this.apollo.watchQuery<Query>({ query: gql 查询猫{猫{id名称品种}} , fetchPolicy: 'cache-and-network' }) .valueChanges .pipe( map(result => result.data.cats) ); }

任何想法如何在不使用重新获取查询的情况下摆脱这个问题?

0 投票
1 回答
298 浏览

apollo - 是否可以使用 ApolloTestingModule 重置缓存?

我有一个使用 Apollo Angular 客户端来获取一些数据的组件。我正在尝试为它编写测试以检查它如何响应不同类型的数据。

但是,似乎确实有一种方法可以在第一次之后更改响应数据(我假设是由于缓存)。有没有办法在测试时清除缓存或强制它不使用缓存?

我的代码看起来像这样

0 投票
0 回答
214 浏览

javascript - 如何重用 GQL 查询?

想象一下,我有这个“架构”:

现在,在我的一个组件(A)中,我需要用户id;在另一个组件(B)中,我需要 userid和 user name

我现在正在做的是在A Component仅请求 ID 时进行用户查询。在B Component我进行另一个用户查询请求 ID 和名称。

有一段查询总是相同的:

User(id:1){}是相同的,建议更改的是响应参数。对此的正确方法是什么?复制查询的固定部分是否正确?

我们的问题是,如果将来 Schema 发生变化,我们将需要重构所有位置的所有查询。我们想要的是一种将其集中化并对其进行参数化的方法,以便可扩展以响应 Schema 更改。

我的一个队友制作了一个函数,它接收一个字符串并将其放在 GQL 查询中。我不喜欢这种做法。你怎么看?

0 投票
1 回答
1182 浏览

graphql - 如何在 Angular 模块和 GraphQL 查询和突变中实现 apollo-link-error?

我喜欢 apollo-angular 文档中建议的全局设置。我不确定是否将 errorLink 放入选项中,或者是否应将其与 httpLink 分组。

最大的问题是:如何在我的代码中使用它?我在任何地方都找不到示例,也不知道如何开始。我的脑海中还没有 apollo-link-error 的概念。

app.module.ts

带有查询的组件:

0 投票
2 回答
4382 浏览

angular - 如何在 Angular 中使用 import { onError } from 'apollo-link-error' 来处理所有错误

下面是我的apollo angular设置代码:

我想在下面使用:

我怎样才能链接它,以便我能够在控制台中得到错误?

0 投票
0 回答
136 浏览

angular - Apollo watchQuery 方法忽略传递的变量

我正在使用 angular-apollo lib 来调用后端 graphql。我想重用gql函数生成的查询。这意味着我需要使用variables,但是当我编写这样的查询时:

我没有$foo在服务器端替换占位符:

我正在使用以下阿波罗 npm 包:

示例:https ://stackblitz.com/edit/basic-apollo-angular-app-fyykeq?file=src%2Fapp%2Fexchange-rates%2Fexchange-rates.component.ts

有谁知道我做错了什么?

0 投票
1 回答
421 浏览

angular - Angular Apollo 将 URI 注入 graphql.module.ts

我正在制作一个 Angular 库,其中包含我们所有应用程序都需要的 auth/graphql 相关代码。

问题是,我将uriAngular 环境变量存储在 Angular 库中不存在的环境变量中。

执行ng add apollo-angular生成以下模块:

graphql.module.ts(为清楚起见删除了导入):

请注意uri,它会创建对此模块的依赖项,该模块被注入。

在我的应用程序app.module.ts中,我创建了一个获取环境的提供程序:

我通常通过构造函数注入,如下所示:

我已经尝试了很多方法来注入这个uri无济于事!建议?

0 投票
1 回答
273 浏览

angular - Apollo Angular watchQuery 不返回任何结果或错误

GraphQLModule我决定将创建的内容打包ng add apollo-angular到我们自己的 Angular 共享模块中。

https://www.apollographql.com/docs/angular/basics/setup/#installation-with-angular-schematics

在此模块内执行查询时,我收到来自服务器的响应。

但是,当在另一个应用程序中使用此模块时,我们没有收到任何响应或错误:

我已经记录了它的废话,无法确定它为什么根本没有响应。它的行为就像 Apollo 根本没有实例化,但控制台输出证明并非如此。

非常感谢任何建议或帮助!

0 投票
0 回答
516 浏览

angular - SSR Angular Universal,apollo-angular 应用程序中的“ApolloError:网络错误”

每次我在构建的应用程序中通过 apollo-angular 获取组件中的数据时,都会弹出下面的错误并使其崩溃。我真的不知道那个错误是什么意思。当我试图获取有关它的更多信息但它没有显示更多信息时。

应用程序模块:

应用程序服务器模块

延迟加载的 Component.ts

查询架构文件

在 GraphiQL 中测试的 api 中的所有内容都运行良好。