Apollo客户端缓存使用无对象的嵌套对象上的cacheRedirects进行重定向

时间:2018-11-20 18:36:22

标签: frontend apollo-client

我对cacheRedirects有疑问。

我有一个查询用户登录信息的组件:

query LoggedIn {
    loggedIn {
      user {
        ...CurrentUser
      }
      accessToken:
      newLogin: Boolean
   }
}

然后我有了另一个自包含的组件,该组件呈现单个结果和有关其用户的一些信息。我正在使用以下查询,该查询将被上一个查询完全缓存,因此我们不需要网络访问:

query CurrentUser {
  currentUser {
    ...CurrentUser
  }
}

但是我不确定如何设置cacheRedirects以便避免不必要的网络查询? 我在Internet上看到了示例,发现其中的查询都包含“ args”,但是我的查询中没有该参数,因为我将其放入了http标头中,这意味着currentUser中的args:(_,args,{getCacheKey} )为空。

const cache = new InMemoryCache({
    dataIdFromObject: (object: any) => {
      switch (object.__typename) {
          return object.username;
        default:
          return defaultDataIdFromObject(object);
      }
    },
    cacheRedirects: {
      Query: {
        currentUser: (_, args, { getCacheKey }) => {
          getCacheKey({ __typename: 'CurrentUser' });
        },
      },
    },
  });

以上操作无效。谢谢!

0 个答案:

没有答案