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

Apollo React客户端调用查询报Int cannot represent non-integer value: Int错误

错误成因

你客户端定义的GraphQL查询存在语法错误:当需要通过useQuery的variables动态传参时,你没有按照规范先声明查询变量,反而直接把类型关键字Int作为参数值传入了currentUser接口,相当于服务端实际收到的id参数值是字符串"Int",和你定义的Int!参数类型不匹配,因此触发类型校验报错。

解决方法

根据你的使用场景选择以下任意一种修正方案即可:

  • 方案1:直接在查询中写死参数值,和你在Apollo Playground中的写法保持一致
    const ReturnCurrentUser = gql`
      query Query {
        currentUser(id: 1) {
          id
        }
      }
    `;
    
  • 方案2:正确声明查询变量,适配动态传参的需求
    先在查询头部声明接收的变量名、变量类型,再将变量作为参数传入接口即可,和你原有的variables传参逻辑完全适配:
    const ReturnCurrentUser = gql`
      # 声明查询接收的变量,变量名$id和后续variables的key对应,类型和服务端定义的Int!对齐
      query Query($id: Int!) {
        currentUser(id: $id) {
          id
        }
      }
    `;
    
    // 原有逻辑无需修改
    const {loading, error, data} = useQuery(ReturnCurrentUser, {variables: {id: 1}});
    

内容的提问来源于stack exchange,提问作者Peter Boomsma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:54:03