使用 endCursor 查询产品不起作用

问题描述

我想为我的应用程序制作分页功能,但是当我使用 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/