【问题标题】:Cannot represent non-enum value不能表示非枚举值
【发布时间】:2020-11-10 14:15:54
【问题描述】:

在我的 graphQL API(带有 typescript 和 type-graphql)中,我正在尝试运行一个 inputType 具有 enum 的突变strong> 值定义如下

export enum GenderType {
  female = 'female',
  male = 'male',
}

registerEnumType(GenderType, {
  name: 'GenderType',
});

我正在尝试执行这个突变。

mutation {
  registerStudent(data: {
    name: "John",
    gender: "male",
  }) {
    id
  }
}

但是当我尝试执行突变时,它给出了一个错误提示

"message": "Enum "GenderType" 不能表示非枚举值:"female"。你的意思是枚举值 "female" 还是 "male"?",

我认为这是因为我如何在 type-graphql 中使用 registerEnumType 定义枚举类型。

如何玷污enum with type-graphql

【问题讨论】:

  • 发现问题...实际上问题位于我通过的突变对象类型。首先我传递了性别:“男性”,但它是一个枚举,所以它有自己的值。然后我尝试了性别:男性它起作用了。把它作为男性传递,没有“男性”⚡
  • 您可以回答自己的问题并将其标记为已接受。这样你就可以帮助其他有同样问题的人,并清楚地表明这个问题有答案。

标签: typescript enums graphql typegraphql


【解决方案1】:

?找到问题了...

实际上问题在于我通过的突变对象数据。

首先,我将导致问题的性别类型作为 String 传递。

mutation {
  registerStudent(data: {
    name: "John",
    gender: "male",
  }) {
    id
  }
}

这是错误的,因为它是一个字符串,程序需要一个我们在枚举中定义的值,因此请按原样传递枚举值。

mutation {
  registerStudent(data: {
    name: "John",
    gender: male,
  }) {
    id
  }
}

【讨论】:

    猜你喜欢
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    • 2023-03-04
    • 1970-01-01
    相关资源
    最近更新 更多