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!