我对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' });
},
},
},
});
以上操作无效。谢谢!