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

React中如何向GraphQL/AWS AppSync传递enum类型字段并解决报错

报错根因

GraphQL 枚举类型要求传入的值必须和 schema 中定义的枚举可选值 完全匹配(拼写、大小写完全一致),不能传入枚举范围外的任意字符串,你的报错属于值不匹配或者字段配置错误导致的。

修复步骤

1. 先核对2个基础信息

  • 核对 schema.graphql 中对应枚举的字段名:你报错提示是companyType has an invalid value,先确认你定义的枚举字段到底是companyStatus还是companyType,input 中的 key 必须和 schema 定义完全一致。
  • 打印userCtx.user.status的实际返回值,和枚举的可选值做比对,确认是否在枚举允许的范围内。

2. 修复代码

首先你给出的代码片段本身存在语法问题:companyStatus: userCtx.user.status 行末尾缺少逗号,先补上。
如果是枚举值不匹配的问题,增加一层值映射转换即可,示例如下:

// 映射表和schema中定义的枚举值完全对齐,比如你的schema枚举是ACTIVE/INACTIVE/PENDING的话
const STATUS_MAP = {
  1: 'ACTIVE',
  0: 'INACTIVE',
  '待审核': 'PENDING'
  // 其他你业务中user.status可能返回的值,都对应到枚举的合法值即可
}

var input = {
  companyName: userCtx.user.company,
  companyStatus: STATUS_MAP[userCtx.user.status] ?? 'PENDING', // ??后是兜底默认值,避免空值报错
  createdAt: new Date().toISOString()
}

如果是字段名定义错误,把input中的key从companyStatus改成和schema一致的companyType即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:57:04