我在 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
}