0

我正在尝试向我的 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);
};
4

0 回答 0