所以我跳到某个项目的中间,我应该在GraphQL中添加光标分页到对象中的列表。
查询(只获取一个对象,从中获取需要分页的数据):
export const GET_OBJECT = gql`
query objectGroup($id: id) {
objectGroup(objectId: $id) {
nodes {
...fragment1
}
}
}
${FRAGMENT1}
`
Fragment1大致如下所示:
export const FRAGMENT1 = gql`
fragment fragment1 on objectGroup {
// some irrelevant content
listItems {
...fragment2
someMoreData {
blah
blah
}
}
}
${FRAGMENT2}
`
最后,片段2包含每个条目的单独字段:
export const FRAGMENT2 = gql`
fragment listItem on ListItem {
id
name
size
}
`
现在,我已经分析了应用程序的其他部分,其中这种分页是实现的,但它总是添加到一个查询,旁边的节点,在pageInfo他们添加的东西像第一,之后,hasNextPage, hasPreviousPage(来自另一个片段,只包含这些字段)。
然而,在这里,正如您所看到的,它有点复杂。如果我将pageInfo和附带的字段添加到查询中,它什么也不做,因为我们总是只获取一个对象,而且它不影响我需要的部分。
从这个结构判断,合乎逻辑的事情似乎是向片段1中的listtitems添加了一些参数。但是如果我尝试添加第一个或类似的东西,我只是得到一个消息说"字段' listtitems '不接受参数'后'">,或者如果我尝试添加pageInfo字段的任何地方,它说'字段'pageInfo'不存在类型' listtitem '。不,我没有访问模式或任何后端。
有办法实现这个吗?如果这是一个愚蠢的问题,我很抱歉,但这是一个非常具体的情况,谷歌不是很有帮助
- 如果后端不支持
objectGroup
查询分页,您将无法从客户端添加它 - 希望您可以访问该模式,以便您可以探索并查看其他可用的内容。如果你的
listItem
上有一个分页查询,那么你可以使用它。
否则你需要请求后台支持你想要做的事情。
不给你模式访问权在后端是相当邪恶的。没有模式或文档,你是在黑暗中拍摄。