问题标签 [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.
jestjs - 为什么 Angular 规范文件中的 ApolloTestingModule 会开玩笑抛出:“无法读取未定义的属性‘使用’?
我正在尝试结合 Angular、Jest 和 Apollo。
我的 Spec 文件遵循此处文档中描述的结构。
当我像这样开玩笑时:jest --watchAll
一切正常。但如果我喜欢这样:jest --watchAll --collectCoverage
,所有带有 apollo 测试模块的规范文件都会失败,并显示:
(第 59 行在组件构造函数内)。
我希望有人可以帮助我理解此错误消息的含义,以及为什么它仅在我收集覆盖范围时才出现?
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)
);
}
任何想法如何在不使用重新获取查询的情况下摆脱这个问题?
apollo - 是否可以使用 ApolloTestingModule 重置缓存?
我有一个使用 Apollo Angular 客户端来获取一些数据的组件。我正在尝试为它编写测试以检查它如何响应不同类型的数据。
但是,似乎确实有一种方法可以在第一次之后更改响应数据(我假设是由于缓存)。有没有办法在测试时清除缓存或强制它不使用缓存?
我的代码看起来像这样
javascript - 如何重用 GQL 查询?
想象一下,我有这个“架构”:
现在,在我的一个组件(A)中,我需要用户id
;在另一个组件(B)中,我需要 userid
和 user name
。
我现在正在做的是在A Component
仅请求 ID 时进行用户查询。在B Component
我进行另一个用户查询请求 ID 和名称。
有一段查询总是相同的:
这User(id:1){}
是相同的,建议更改的是响应参数。对此的正确方法是什么?复制查询的固定部分是否正确?
我们的问题是,如果将来 Schema 发生变化,我们将需要重构所有位置的所有查询。我们想要的是一种将其集中化并对其进行参数化的方法,以便可扩展以响应 Schema 更改。
我的一个队友制作了一个函数,它接收一个字符串并将其放在 GQL 查询中。我不喜欢这种做法。你怎么看?
graphql - 如何在 Angular 模块和 GraphQL 查询和突变中实现 apollo-link-error?
我喜欢 apollo-angular 文档中建议的全局设置。我不确定是否将 errorLink 放入选项中,或者是否应将其与 httpLink 分组。
最大的问题是:如何在我的代码中使用它?我在任何地方都找不到示例,也不知道如何开始。我的脑海中还没有 apollo-link-error 的概念。
app.module.ts
带有查询的组件:
angular - 如何在 Angular 中使用 import { onError } from 'apollo-link-error' 来处理所有错误
下面是我的apollo angular设置代码:
我想在下面使用:
我怎样才能链接它,以便我能够在控制台中得到错误?
angular - Apollo watchQuery 方法忽略传递的变量
我正在使用 angular-apollo lib 来调用后端 graphql。我想重用gql
函数生成的查询。这意味着我需要使用variables
,但是当我编写这样的查询时:
我没有$foo
在服务器端替换占位符:
我正在使用以下阿波罗 npm 包:
有谁知道我做错了什么?
angular - Angular Apollo 将 URI 注入 graphql.module.ts
我正在制作一个 Angular 库,其中包含我们所有应用程序都需要的 auth/graphql 相关代码。
问题是,我将uri
Angular 环境变量存储在 Angular 库中不存在的环境变量中。
执行ng add apollo-angular
生成以下模块:
graphql.module.ts(为清楚起见删除了导入):
请注意uri
,它会创建对此模块的依赖项,该模块应被注入。
在我的应用程序app.module.ts
中,我创建了一个获取环境的提供程序:
我通常通过构造函数注入,如下所示:
我已经尝试了很多方法来注入这个uri
无济于事!建议?
angular - Apollo Angular watchQuery 不返回任何结果或错误
GraphQLModule
我决定将创建的内容打包ng add apollo-angular
到我们自己的 Angular 共享模块中。
https://www.apollographql.com/docs/angular/basics/setup/#installation-with-angular-schematics
在此模块内执行查询时,我收到来自服务器的响应。
但是,当在另一个应用程序中使用此模块时,我们没有收到任何响应或错误:
我已经记录了它的废话,无法确定它为什么根本没有响应。它的行为就像 Apollo 根本没有实例化,但控制台输出证明并非如此。
非常感谢任何建议或帮助!
angular - SSR Angular Universal,apollo-angular 应用程序中的“ApolloError:网络错误”
每次我在构建的应用程序中通过 apollo-angular 获取组件中的数据时,都会弹出下面的错误并使其崩溃。我真的不知道那个错误是什么意思。当我试图获取有关它的更多信息但它没有显示更多信息时。
应用程序模块:
应用程序服务器模块
延迟加载的 Component.ts
查询架构文件
在 GraphiQL 中测试的 api 中的所有内容都运行良好。