假设我有这样的模式(伪代码)
query comments: [Comment]
query comment(id: Int!): Comment
我正在获取这样的评论(伪代码)
comments {
id
text
}
comment {
id
text
author {
id
name
}
}
在我的组件中(伪):
const comment = useQuery(COMMENT_QUERY, {variables: {id: 1}})
我的问题是这个。如果我已经加载了 , 和 字段的提要comments
,id
然后text
我随后加载了带有添加author
字段的单个评论,有没有办法让useQuery
单个评论查询获取具有相应 id 的缓存对象查询comments
,如果可用?也就是说,comments
查询应该text
已经有一个评论的字段,该评论的 id 已经加载。只需要额外的网络请求来获取author
字段。如果 Apollo 足够聪明,可以立即返回这个部分结果,然后author
在我的示例中,当数据可用时返回其余字段,那就太好了。
使用 apollo 包/缓存可以做到这一点,还是我需要编写自己的useQuery
包装器来直接读取缓存?