AppSync 和 GraphQL 枚举突变

AppSync and GraphQL Enum mutations

我在 AppSync for GraphQL 中有以下架构

input CreateTeamInput {
    name: String!
    sport: Sports!
    createdAt: String
}

enum Sports {
    baseball
    basketball
    cross_country
}
type Mutation{
    createTeam(input: CreateTeamInput!): Team
}

然而,当我尝试通过

使用 AWS Amplify 库执行查询时
export const CreateTeam = `mutation CreateTeam($name: String!, $sport: String!){
  createTeam(input:{name:$name, sport:$sport}) {
    id,
    name,
    sport
  }
}
`;

....

API.graphql(graphqlOperation(CreateTeam, this.state))

我收到以下错误:Validation error of type VariableTypeMismatch: Variable type doesn't match

如何更新我的代码以使用此枚举类型?

$sport 必须是 Sports 类型而不是字符串

CreateTeamInput.sport 字段类型是枚举,因此您的 $sport 变量必须是枚举。

尝试将查询更改为:

export const CreateTeam = `mutation CreateTeam($name: String!, $sport: Sports!){
  createTeam(input:{name:$name, sport:$sport}) {
    id,
    name,
    sport
  }
};

注: 作为惯例,枚举值最好使用大写字母,这样可以很容易地将它们与字符串区分开来。

enum SPORTS {
    BASEBALL
    BASKETBALL
    CROSS_COUNTRY
}