首页 文章

GraphQL Apollo错误:未捕获(承诺)

提问于
浏览
1

我'm trying to submit new data to my local graphQL API via button click but I' m收到错误:错误错误:未捕获(在承诺中):错误:网络错误:http://localhost:4000/graphql的Http失败响应:400错误请求 .

the idea is that when you press the button new data gets submitted

<button type="submit" (click)="onSubmit()" [disabled]="!personForm.valid" id="buttonSubmit" mat-raised-button color="accent"class="floated">Send</button>

onSubmit function calls mutation

onSubmit() 
  {
    let id = 5;
    let vorname = 'user';
    let name =  'name';
    let email =  'testt@hotmail.com';
    let status =  'true';
    let activity =  'Office';

    this.apollo.mutate<CreateUserMutationResponse>({
      mutation: CREATE_USER_MUTATION,
      variables: {
        id: id,
        vorname: vorname,
        name: name,
        email: email,
        status: status,
        activity: activity
      }
    }).subscribe((response) => {

    });

    console.log('submitted');

  }

The mutation in my types.ts looks like this

export const CREATE_USER_MUTATION = gql`
  mutation CreateUserMutation($id: ID!, $vorname: String!, $name: String!, $email: String!, $status: String!, $activity: String) {
    createUser(id: $id,vorname: $vorname, name: $name, email: $email, status: $status, activity: $activity) {
      id
      vorname
      name
      email
      status
      activity
    }
  }
`;

export interface CreateUserMutationResponse {
  createUser: String;
}

1 回答

  • 1

    当我找到你的问题时,我确实遇到了同样的问题 . 关于这个的文档很难得到,但是,this example让我知道如何解决这个问题 . 在我将try catch statement中的突变包围起来后,它对我有用 . 这样的事情我非常肯定会为你解决这个问题:

    onSubmit() {
    
      [...]
    
      try {
        this.$apollo.mutate <CreateUserMutationResponse>({
          mutation: CREATE_USER_MUTATION,
          variables: {
            id: id,
            vorname: vorname,
            name: name,
            email: email,
            status: status,
            activity: activity
           }
         }).subscribe((response) => { });
       } catch (e) {
          console.error(e);
       }
    
      console.log('submitted');
    

    This page也帮助我首先设置了突变(看起来你已经正确地做了) .

相关问题