问题描述
我想为我的应用程序制作分页功能,但是当我使用 wordpress 中的 graphql 查询数据时,该功能不起作用 我有一个简单的查询:
query MyQuery {
products(first: 2,last: null,after: null,before: null) {
pageInfo {
hasNextPage
hasPrevIoUsPage
startCursor
endCursor
}
edges{
node {
id
name
}
cursor
}
}
}
我明白了
{
"data": {
"products": {
"pageInfo": {
"hasNextPage": true,"hasPrevIoUsPage": false,"startCursor": "YXJyYXljb25uZWN0aW9uOjY1","endCursor": "YXJyYXljb25uZWN0aW9uOjM2"
},"edges": [
{
"node": {
"id": "cHJvZHVjdDo2NQ==","name": "wordpress Pennant 1"
},"cursor": "YXJyYXljb25uZWN0aW9uOjY1"
},{
"node": {
"id": "cHJvZHVjdDozNg==","name": "wordpress Pennant"
},"cursor": "YXJyYXljb25uZWN0aW9uOjM2"
}
]
}
},}
但是当再次调用 api 以获取下一页时,它不会检索任何内容。 我有疑问
query MyQuery {
products(first: 2,after: "YXJyYXljb25uZWN0aW9uOjM2",before: null) {
pageInfo {
hasNextPage
hasPrevIoUsPage
startCursor
endCursor
}
edges{
node {
id
name
}
cursor
}
}
}
结果
{
"data": {
"products": {
"pageInfo": {
"hasNextPage": true,"hasPrevIoUsPage": true,"startCursor": null,"endCursor": null
},"edges": []
}
},}
我的数据库中有 20 个项目。 我不知道我做错了什么。 感谢帮助
解决方法
在第一个请求中,您获取了 10 个项目,但只收到了 2 个。您的问题就在那里,因为此查询出于某种原因没有找到所有 20 个项目。
根据这些文档,使用 endCursor 的请求看起来不错:https://www.wpgraphql.com/2020/03/26/forward-and-backward-pagination-with-wpgraphql/