首页 > 解决方案 > Angular 的 Apollo 客户端 Chrome Devtools 缓存为空

问题描述

我有一个 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,
  };
}

标签: angularapolloapollo-client

解决方案


推荐阅读