我在AppSync for Gralphql中有以下架构
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
。
如何更新我的代码以使用此枚举类型?
答案 0 :(得分:3)
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
}
答案 1 :(得分:0)
$ sport需要是体育类型而不是字符串