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

GraphQL查询报错:'qrcodeUrl'不存在、变量$id未使用求解决

问题解决建议

你的报错包含两个明确的问题,逐个解决即可:

1. 字段qrcodeUrl不存在于Query类型

这个错误说明你的GraphQL服务端根本没有在Query根类型下暴露qrcodeUrl这个字段。你需要先确认服务端正确的查询字段名——通常获取带ID的资源,需要通过一个带参数的字段调用,比如qrcode(id: $id)或者formQrcode(formId: $id)这类形式,而不是直接取qrcodeUrl。

举个修正后的查询示例(需要根据服务端实际Schema调整):

export const showQrCode = gql`
query qrcodeUrlByFormId ($id: ID!){
    # 这里的qrcode是服务端Query类型下存在的字段,需替换为实际字段名
    qrcode(id: $id) {
        qrcodeUrl # 这里是该字段返回对象中的属性,需和服务端定义一致
    }
  }
`;
  • 给$id加上!标记非空,避免无效的空值请求
  • 调用服务端真实存在的Query字段,并传入$id变量

2. 变量$id声明但未使用

这个错误是因为你在查询里定义了$id,但没有任何地方用到它。上面的修正示例已经解决了这个问题——通过qrcode(id: $id)把变量传递给查询字段,变量就会被正常使用。

额外调整

如果服务端返回的结构是data.qrcode.qrcodeUrl,你需要同步修改listQrcode函数的返回逻辑:

export const listQrcode = async (id: any) => {
    console.log("inside list qrcode")
  const result = await useFormProvider(showQrCode, {id});
  // 根据服务端返回结构调整解析逻辑
  return result.data?.qrcode?.qrcodeUrl;
}

关键验证步骤

  • 先通过GraphQL Playground/IDE查看服务端的Schema文档,确认Query根类型下的可用字段,以及每个字段的参数、返回结构
  • 用Postman测试修正后的查询语句,确保能正常返回数据后再同步到前端代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:10:24