在Apollo中我有一个关于cacheRedirects
的问题,我有一个项目概述和一个detailview。我希望将detailview缓存重定向到概述中的某个项(例如文档中的the book example)。
唯一的是,我想重定向到的东西只能从更大的父查询中查询。
因此,扩展图书示例将是:
# for all books
library (id: ID) {
books (params) {
id
title
}
}
# for a single book
library (id: ID) {
book (id: ID) {
id
title
}
}
如果我想拿一本书,我将重定向到什么?
我认为我无法做到这一点,因为我实际上是在获取图书馆以获取书籍:
cacheRedirects: {
Query: {
book: () => {
// return book id from cache
}
}
}
是否有一种方法可以将对图书的查询(通过library
重定向到图书数据?还是我以错误的方式考虑这个问题?
答案 0 :(得分:2)
我不知道您也可以直接解析类型,所以在这种情况下:
cacheRedirects: {
Library: {
book: (_, args) => toIdValue(dataIdFromObject({ id: args.id, __typename: 'Book' }))
}
}
应该用于从图书馆重定向到缓存的图书。