如何在 pageInfo 中将总计数传递给客户端
How to pass total count to the client in pageInfo
我用first
after
和last
before
做分页。
hasNextPage
和 hasPreviousPage
非常有用。
但是我还需要 total count
这样我就可以在客户端上计算和显示 page 5 of 343 pages
之类的东西。
不幸的是,这不是 pageInfo
的一部分,即使我在服务器站点上有信息。
能否请您在 pageInfo
中包含一个 total
字段并扩展 connectionFromArray
以像 connectionFromArraySlice
那样包含总数 arrayLength
?
谢谢
pageInfo
旨在表示有关特定页面的信息,而项目总数实际上是连接本身的 属性。我们建议在连接中添加一个 count
字段。您可以使用以下方式查询:
fragment on TodoList {
tasks(first: 10) {
count # <-- total number of tasks
edges { ... }
pageInfo { ... }
}
中继支持连接上的任意字段,因此您可以自由命名此 count
、totalCount
等
谢谢@Joe Savona
他是绝对正确的。由于我花了一些时间才弄清楚如何将 属性 实际添加到服务器站点上的连接,所以我想我也在这里分享它:
var {connectionType: postsConnection} = connectionDefinitions({
name: 'post',
nodeType: qlPost,
connectionFields: () => ({
totalCount: {
type: GraphQLInt,
resolve: (connection) => connection.totalCount,
description: `A count of the total number of objects in this connection, ignoring pagination.
This allows a client to fetch the first five objects by passing "5" as the
argument to "first", then fetch the total count so it could display "5 of 83",
for example.`
}
})
});
希望对别人有帮助。
干杯
我在连接上使用了自定义 totalCount
字段一段时间,但它引入了一个我起初没有看到的复杂性(在突变后更新连接时,如果你必须使用相同的参数查询它希望它自动更新)。
因此我又回到了每个连接旁边都有一个 count
字段。在您的示例中,这意味着:
fragment on TodoList {
taskCount
tasks {
edges { ... }
}
}
我创建了一个小帮手来为我创建它:https://github.com/rea-app/relay-connection-count
我用first
after
和last
before
做分页。
hasNextPage
和 hasPreviousPage
非常有用。
但是我还需要 total count
这样我就可以在客户端上计算和显示 page 5 of 343 pages
之类的东西。
不幸的是,这不是 pageInfo
的一部分,即使我在服务器站点上有信息。
能否请您在 pageInfo
中包含一个 total
字段并扩展 connectionFromArray
以像 connectionFromArraySlice
那样包含总数 arrayLength
?
谢谢
pageInfo
旨在表示有关特定页面的信息,而项目总数实际上是连接本身的 属性。我们建议在连接中添加一个 count
字段。您可以使用以下方式查询:
fragment on TodoList {
tasks(first: 10) {
count # <-- total number of tasks
edges { ... }
pageInfo { ... }
}
中继支持连接上的任意字段,因此您可以自由命名此 count
、totalCount
等
谢谢@Joe Savona
他是绝对正确的。由于我花了一些时间才弄清楚如何将 属性 实际添加到服务器站点上的连接,所以我想我也在这里分享它:
var {connectionType: postsConnection} = connectionDefinitions({
name: 'post',
nodeType: qlPost,
connectionFields: () => ({
totalCount: {
type: GraphQLInt,
resolve: (connection) => connection.totalCount,
description: `A count of the total number of objects in this connection, ignoring pagination.
This allows a client to fetch the first five objects by passing "5" as the
argument to "first", then fetch the total count so it could display "5 of 83",
for example.`
}
})
});
希望对别人有帮助。
干杯
我在连接上使用了自定义 totalCount
字段一段时间,但它引入了一个我起初没有看到的复杂性(在突变后更新连接时,如果你必须使用相同的参数查询它希望它自动更新)。
因此我又回到了每个连接旁边都有一个 count
字段。在您的示例中,这意味着:
fragment on TodoList {
taskCount
tasks {
edges { ... }
}
}
我创建了一个小帮手来为我创建它:https://github.com/rea-app/relay-connection-count