我有一个 Apollo Angular 客户端应用程序。我写信给商店:
const userQuery = this.userGql.document;
this.apollo.getClient().writeQuery({
query: userQuery,
data: { user: result.data.login.user },
});
这有效。然后,我从缓存中检索用户并显示数据:
this.user = this.apollo.getClient().readQuery({
query: this.userGql.document,
}).user;
这也有效。然而,我在 Google Chrome Devtools 中的缓存始终如下所示:
为什么这是空的?我想查看我的缓存状态调试。另外,当我转到 GraphiQL 选项卡并选择从缓存中获取时,它会查询 API(我可以知道,因为我没有传递令牌,并且它拒绝了带有未经身份验证错误的请求)。
编辑,我确实将
connectToDevTools
设置为 true,以防万一:
export function createApollo(httpLink: HttpLink) {
return {
link: httpLink.create({ uri }),
cache: new InMemoryCache({
dataIdFromObject: object => {
switch (object.__typename) {
case 'user':
return object['username'];
}
},
}),
connectToDevTools: true,
};
}
您可以尝试使用此扩展以 json 格式复制整个 apollo 缓存并将其粘贴到任何编辑器中以查看缓存内容。
https://chromewebstore.google.com/detail/apollo-inspector/onjpbondiicnaofbdmhmjobnlchakpan