web-dev-qa-db-fra.com

La mutation graphql donne une erreur de syntaxe: nom attendu

J'essaie d'implémenter des mutations avec une variable. Mais j'obtiens l'erreur suivante:

"Syntax Error GraphQL request (3:22) Expected Name, found $

2:     mutation {
3:       createProperty($property) {
                        ^
4:         id
"

Mon schéma ne dit absolument rien sur un nom, c'est pourquoi je pense que cette erreur est si étrange .. Je ne pense pas non plus que les documentations sur graphql/apollo soient très bonnes.

Appel de la mutation du client:

const property = {
    title: 'First house',
    cost: 849,
    bedrooms: 3,
    bathrooms: 2,
    car_spaces: 1,
    house_size: 60,
  };

  const createPropertyQuery =
  graphql(gql`
    mutation {
      createProperty($property) {
        id
      }
    }
  `, {
      options: {
        variables: {
          property,
        },
      },
    });


  const { data } = await apolloClient.query({
    query: createPropertyQuery,
  });

Schéma:

type Property {
    title: String!
    cost: Float
    user: User
    bedrooms: Int!
    bathrooms: Int!
    car_spaces: Int!
    house_size: Int!
}
input propertyInput {
    title: String!
    cost: Float
    bedrooms: Int!
    bathrooms: Int!
    car_spaces: Int!
    house_size: Int!
}

type RootMutation {
    createProperty (
        property: propertyInput
    ): Property
}
5
Soundwave

Vous devez d'abord mentionner le nom du paramètre!

mutation CreatePropertyMutatuin($property: propertyInput){
  createProperty(property: $property) {
    id
  }
}
10
Mohsen ZareZardeyni