【发布时间】:2023-03-07 09:04:01
【问题描述】:
我正在使用带有 InMemoryCache 的 apollo angular 客户端。我有一些要禁用缓存的 watchQuery。我的客户端设置如下:
link: httpLink.create({uri}),
cache: new InMemoryCache(),
ssrMode: false,
ssrForceFetchDelay:0,
defaultOptions: {
watchQuery: {
fetchPolicy: 'no-cache',
errorPolicy: 'ignore',
},
query: {
fetchPolicy: 'no-cache',
errorPolicy: 'all',
},
}
我的 watchQuery 看起来像这样:
return this.apollo.watchQuery<TestAssetListQuery>({
query: gql`
query {
testAssetList {
name,
path,
size
}
}
`,
fetchPolicy: "no-cache",
}).valueChanges;
然而,每个后续查询都是从缓存中提取的。
如果有任何关于如何强制 apollo 不缓存我的查询的建议,我将不胜感激。
【问题讨论】:
-
我应该知道我做错了什么。我正在使用 NGX 数据表,并且正在使用未更新表数据的 observable 加载数据。我仍在努力让它工作,但它不是阿波罗客户端。它工作正常。
-
最终我的问题是角度处理事件的方式。我正在从组件 A 调用组件 B 中的一个函数。即使我正在更新数据表的基础数据,推送事件也没有发生。我仍然不明白为什么,但是将数据表移动到生成原始事件(组件 A)的同一组件中解决了我的问题。