2017-07-30 4 views
0

私は変数で突然変異を実装しようとしています。しかし、私は次のエラーを取得する:私のスキーマは間違いなく名については何も言いませんgraphqlの突然変異により構文エラーが発生する:予想される名前

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

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

私はこのエラーはとても奇妙だと思う理由、それはだ..私はまたgraphql /アポロについてのドキュメンテーションがあるとは思いませんとても良い。

クライアントからの突然変異を呼び出す:

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, 
    }); 

スキーマ:

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 
} 
+0

クエリを変更し、実際に操作定義内で送信する変数を宣言する必要があります。詳細については、[この回答](https://stackoverflow.com/a/45131876/6024220)を参照してください。 –

+1

[GraphQL - 構文エラーGraphQL要求(5:15)の期待される名前]の可能な複製(https://stackoverflow.com/questions/45130386/graphql-syntax-error-graphql-request-515-expected-name) –

答えて

3

は、あなたが最初にパラメータの名前を言及する必要があります!

mutation CreatePropertyMutatuin($property: propertyInput){ 
    createProperty(property: $property) { 
    id 
    } 
} 
関連する問題