我创建了一个渐进式Web应用程序(PWA),该应用程序调用了graphQl服务器,并使用Apollo客户端(角度)进行了即时查询和修改。 我有以下查询:
query GetAreas($connection: String!) {
areas(connection: $connection) {
id
description: description
}
}
我的graphqlModule如下所示:
@NgModule({
exports: [
HttpClientModule,
ApolloModule,
HttpLinkModule
],
providers: [{
provide: APOLLO_OPTIONS,
useFactory(httpLink: HttpLink) {
const cache = new InMemoryCache();
persistCache({
cache,
storage: window.localStorage,
});
return {
link: httpLink.create({uri}),
cache
};
},
deps: [HttpLink]
}]
})
export class GraphQLModule {
}
对于不同的connection
变量,返回的区域将有所不同。
问题是,当尝试使用阿波罗缓存时,此查询将缓存返回的第一个值,但是当我使用不同的connection
进行另一个查询时,它将获取另一个{{1}的先前缓存的查询结果}变量。
阿波罗文档仅讨论缓存connection
和__typename
或_id
的问题。
有没有办法做到这一点?要缓存不同的getAreas(具有不同的id
变量)?也许使用某种cacheRedirect?