我在 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
如何更新我的代码以使用此枚举类型?

最佳答案

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
}

10-08 14:58