我正在尝试向我的 graphql api 发出突变请求,但我收到了无效值错误。我正在使用带有 typescript 的 graphql codegen 并在我的前端做出反应。我直接复制了我在 graphql 操场上创建的工作 graphql 突变。Codegen 生成时没有给出任何错误,typescript 没有给出任何错误,我已经检查了我的语法 10 次,但我终生无法弄清楚为什么会出错。
错误代码:GRAPHQL_VALIDATION_FAILED
错误消息:“参数“数据”的值无效 {email:$email,用户名:$username,密码:$password,confirmPassword:$confirmPassword}。
我的后端解析器看起来像这样
@Mutation(() => LoginResponse)
async signupLocal(
@Arg("data") signupLocalInput: SignupLocalInput,
@Ctx() { res }: MyContext
): Promise<LoginResponse> {
const user = await signupLocalService(signupLocalInput);
sendRefreshToken(res, createRefreshToken(user));
return {
accessToken: createAccessToken(user),
user,
};
}
我的前端 graphql 突变看起来像这样
mutation SignupLocal(
$email: String!
$username: String!
$password: String!
$confirmPassword: String!
) {
signupLocal(
data: {
email: $email
username: $username
password: $password
confirmPassword: $confirmPassword
}
) {
accessToken
}
}
我的实现看起来像这样
const [signupLocal] = useSignupLocalMutation();
const onSubmit = async (data: FormData) => {
console.log(data);
const { email, username, password, confirmPassword } = data;
const response = await signupLocal({
variables: { email, username, password, confirmPassword },
});
console.log(response);
};