【发布时间】:2018-09-03 17:59:32
【问题描述】:
我正在尝试防止重新获取以前缓存的数据。但是文档提供了几种通过cacheRedirects 和dataIdFromObject 实现此目的的方法。我试图了解何时使用一种技术而不是另一种技术。
他是一个使用 dataIdFromObject 的示例流程——这是否会为 Apollo 从缓存中获取详细视图数据提供足够的上下文,还是我还需要一个 cacheRedirect 来链接 uuid 查询?
列表视图查询:
query ListView {
books {
uuid
title
abstract
}
}
详细视图查询:
query DetailView {
book(uuid: $uuid) {
uuid
title
abstract
}
}
使用dataIdFromObject 缓存构造函数参数:
new InMemoryCache({
dataIdFromObject: object => {
switch (object.__typename) {
case 'book': return `book:${object.uuid}`;
default: return defaultDataIdFromObject(object); // default handling
}
}
});
【问题讨论】:
标签: apollo apollo-client