Flutter_graphql突变不会触发阿波罗服务器解析器

时间:2019-05-21 15:08:16

标签: flutter graphql apollo-server

我正在创建Flutter应用程序并重用appolographql服务器。 问题是当我在Flutter中进行突变时,解析器功能未触发。

使用运动场时触发解析器,但不触发颤动。

这是Flutter代码:

Mutation(
  options: MutationOptions(
    document: r"""
      mutation createOrUpdateHorse($horse:HorseInput,$entityid:ID) {
        createOrUpdateHorse(horse:$horse,entityid:$entityid) {
          id
          name
          status
          rating
        }
      }
    """,
    // variables: {
    //   "horse": {"id": 1, "status": "bu"},
    //   "entityid": 1
    // },
  ),
  builder: (
    RunMutation runMutation,
    QueryResult result,
  ) {
    return IconButton(
      icon: Icon(Icons.cloud_upload),
      onPressed: () => runMutation({
            "horse": {"id": 1, "status": "bu"},
            "entityid": 1
          }),
    );
  },
  onCompleted: (resultData) {
    print(resultData);
  },
),

这是服务器在出现抖动突变时收到的请求正文

{ operationName: 'createOrUpdateHorse',
  variables: { entityid: 1, horse: { id: 1, status: 'bu' } },
  query:
   'mutation createOrUpdateHorse($horse:HorseInput,$entityid:ID) {\n                  createOrUpdateHorse(horse:$horse,entityid:$entityid) {\n                    
   id\n
   status\n
   }\n
  }\n
' }

这是服务器在发生操场变化时收到的请求正文

{operationName:null,
variables:{},
query:
 mutation {\n  
   createOrUpdateHorse(horse: {id: 1, status: \"alo\"}, entityid: 5) 
{\n    
  id\n
  status\n  
}\n
}\n
}

2 个答案:

答案 0 :(得分:0)

您正在使用哪个版本的graphql_flutter? 在版本^ 1.0.1中-突变看起来如下:

r'''
mutation createOrUpdateHorse(
        $horse: HorseInput,
        $entityid: ID
        ){
        action: createOrUpdateHorse(
          input: {
            horse: $horse,
            entityid: $entityid
          }){
            id
            name
            status
            rating
          }
      } 
'''

答案 1 :(得分:0)

我的错,那是一个愚蠢的错误,我忘记了“!”用于HorseInput!。