首页 > 解决方案 > 突变不起作用 - Flutter 和 GraphQL

问题描述

我将我的应用程序与 graphql 连接起来,查询工作正常,我能够从 API 获取数据,但不知何故,突变根本不起作用。我的 mytation 是一个简单的登录功能,您可以在其中输入现有用户的登录名和密码。每次我运行它时,onCompleted 返回空值,而不是带有令牌的 JSON。后来我检查了突变是否将任何东西传递给数据库,但没有。有没有办法解决它?

我的代码:

final String loginQuery = """
mutation loginUser(\$email: String!, \$password: String!){
 login(email: \$email, password: \$password){}
}
""";

登录小部件:按下按钮后,文本小部件应显示突变结果。

Widget mutation() {
    return Mutation(
        options: MutationOptions(
          update: (Cache cache, QueryResult result) {
            return cache;
          },
          onCompleted: (resultData) {
            print('on completed $resultData');
          },
          documentNode: gql(loginQuery),
        ),
        builder: (RunMutation runMutation, QueryResult result) {
          return Column(
            children: <Widget>[
              RaisedButton(
                  child: Text('login'),
                  onPressed: () {
                    runMutation(
                        {"email": "mockuser@gmail.com", "password": "123456"});
                    print(result.data);
                  }),
              Container(
                  color: Colors.white,
                  child: Text('Result  \n ${result?.data?.toString()}'))
            ],
          );
        });
  }

标签: fluttergraphqlmutation

解决方案


尝试使用,

onError: (err) {
          print(err.graphqlErrors);
         },

onCompleted之后。这将向您显示错误(如果有)。


推荐阅读