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

Hasura GraphQL报错:Payouts类型未找到adyenStatus字段求助

排查 GraphQL 字段 adyenStatus 不存在的问题

错误信息

浏览器控制台抛出以下错误:

Uncaught (in promise) Error: field "adyenStatus" not found in type: 'Payouts'

排查步骤

1. 确认 Hasura GraphQL Schema 中存在该字段

  • 打开 Hasura Console 的 GraphiQL 页面,点击右上角「Docs」按钮,找到 Payouts 类型,检查是否包含 adyenStatus 字段。
  • 如果字段不存在:
    • 确认数据库表中是否真的有 adyenStatus 字段,若存在,需在 Hasura 中重新追踪该表,确保字段被添加到 Schema。
    • 检查 Hasura 对该表的权限配置,确保当前使用的角色拥有读取 adyenStatus 字段的权限。

2. 验证 Hasura 查询实际返回字段

在 Hasura GraphiQL 中执行你的查询,查看返回结果里的 payouts 项是否包含 adyenStatus:

  • 如果返回结果里没有该字段,说明是 Hasura 端的问题(Schema 未同步或权限未开放)。
  • 如果返回结果里有该字段,继续排查前端问题。

3. 排查前端缓存与代码生成问题

  • 清理项目缓存:删除 node_modules、dist/build 文件夹,重新安装依赖并编译项目。
  • 临时绕过 Apollo 缓存测试:在查询中添加 fetchPolicy: 'network-only',确认是否是旧缓存导致的问题:
    export default function usePayoutsQuery(variables?: OperationVariables) {
      return useQuery<PayoutsType>(GET_PAYOUTS, { 
        variables,
        fetchPolicy: 'network-only'
      });
    }
    

4. 检查字段拼写与别名

  • 确认 GraphQL 查询中的字段名拼写完全一致(注意大小写:adyenStatus 不是 AdyenStatus 或 adyen_status)。
  • 查看浏览器 Network 面板的 GraphQL 请求响应,确认前端实际收到的数据中是否包含 adyenStatus 字段。

5. 确认 TypeScript 类型与实际数据匹配

虽然你的 Payout 接口定义了 adyenStatus,但如果实际返回数据缺失该字段,也可能引发类型相关错误。不过当前错误来自 GraphQL 层面,优先级低于前面的排查点。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 21:47:34