Ricerca nel sito web

typescript - Angular, GraphQL e Apollo - Invia dati del modulo con sottoscrizione GraphQL


Sto lavorando a un'app Angular con GraphQL e Apollo che mostra i dati dalla mia API GraphQL locale.

Inoltre, sto lavorando su un modulo che permette agli utenti di inviare nuovi dati all'API, ma non sono sicuro se sto usando l'approccio corretto qui.

Attualmente sto ricevendo questo errore:

ERROR TypeError: Converting circular structure to JSON

Ora, lascia che ti mostri il codice rilevante.

form.component.html

Questo è il modulo HTML che accede alla funzione onSubmit.

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

form.component.ts

Qui uso this.apollo.mutate per sottoscrivere nuovi dati all'API

onSubmit(formDirective) 
  {
    let surname =  this.personForm.get('surname');
    let name =  this.personForm.get('name');
    let email =  this.personForm.get('email');
    let status =  this.personForm.get('status');
    let activity =  this.personForm.get('activity');

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

    });

    console.log('submitted');

  }

types.ts

export type User = {
    surname: string;
    name: string;
    email: string;
    status: string;
    activity: string;
  }

  export type Query = {
      users: User[];
  }

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

  export interface CreateUserMutationResponse {
    createUser: User;
  }

Qualsiasi indicazione nella giusta direzione sarebbe molto apprezzata, grazie!