You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GraphQL分页查询报错pageInfo的hasNextPage为未知参数如何解决

报错原因
  • 你使用的是基于Relay规范的GraphQL Connection游标分页模式,pageInfo是Connection类型下的只读返回字段,本身不支持传入任何查询参数,作用是由服务端返回分页元数据(是否存在下一页、分页游标等)。你错误将hasNextPage、endCursor作为入参传递给pageInfo字段,直接触发了“未知参数”的报错。
  • Connection模式下,所有分页控制参数都定义在Connection类型的入口字段(也就是你代码中的people字段)上,常用分页参数包括:
    • first:指定从游标位置向后取多少条数据
    • after:传入上一页返回的endCursor值,作为本次查询的起始位置
    • last:指定从游标位置向前取多少条数据
    • before:传入上一页返回的startCursor值,作为本次查询的结束位置
  • 你定义的$hasNextPage变量完全冗余:hasNextPage是服务端计算后返回给调用方的结果字段,不需要客户端提前传入。
代码修改方法

将分页参数移到people字段上,移除pageInfo上的错误参数,删除无用的$hasNextPage变量定义,修正后的查询语句如下:

query myquery($viewId: ID!, $endCursor: String) {
  Core_eventPeopleListView(viewId: $viewId) {
    id
    people(
      first: 20, # 可根据需求修改为你需要的单页数据条数
      after: $endCursor
    ) {
      pageInfo {
        hasNextPage
        endCursor
      }
      nodes {
        firstName
        lastName
        jobTitle
        organization
        websiteUrl
      }
    }
  }
}

分页查询的调用逻辑:

  • 拉取第一页数据时,变量中endCursor传null即可,示例变量:
{
  "viewId": "RXZlbnRWaWV3XzMyMTY1Mw==",
  "endCursor": null
}
  • 拉取后续页时,先判断上一页接口返回的pageInfo.hasNextPage值:如果为true,就把上一页返回的pageInfo.endCursor作为本次请求的endCursor变量值传入,发起查询;如果为false,说明已经加载到最后一页,不需要再发起分页请求。

内容的提问来源于stack exchange,提问作者Tori Elstrom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 14:48:34