我们说我有一个博客:
在我博客的首页,我想展示前10个帖子。对于每篇帖子,我想展示10个最近的评论者,5个最近的评论,以及10个最喜欢每个评论的人。 (数字并不重要,我只是设置类似于facebook的东西)。
所以我的查询看起来像这样:
query getPosts(
$postCount: Int,
$likersCount: Int,
$commentCount: Int,
$commentCursor: ID,
$commentLikersCount: Int) {
recentPosts(first: $postCount) {
id,
title,
body,
likers(first: $likersCount) {
id,
name
},
comments(first: $commentCount, after: $commentCursor) {
id,
title,
body,
likers(first: $commentLikersCount) {
id,
name
},
}
}
}
如果我使用新的$commentCursor
重新提交此查询以加载更多注释,那么中继如何缓存数据以便它知道如何在本地获取其他所有内容?我得到了商店的基本图形架构,但对于这样的嵌套事物,我在调试器中感到困惑。
答案 0 :(得分:1)
通常,您可以通过更改first: $commentCount
参数来扩展分页范围,并且您不会使用after
参数。只是说你将$commentCount
从5
更改为10
,Relay知道要获取位置6到10的项目,因为它已经有从1到5的项目。具体来说,你&# 39; ll看到它发出first: 5, after: <cursor>
查询,其中<cursor>
是第5条评论的光标(为此目的,Relay会自动为连接中的每个边缘获取光标,即使你没有&#39;明确要求他们。)