【问题标题】:Mutation is not working - Flutter & GraphQL突变不起作用 - Flutter 和 GraphQL
【发布时间】:2020-12-23 16:57:26
【问题描述】:

我将我的应用程序与 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()}'))
            ],
          );
        });
  }

【问题讨论】:

  • api 突变单独测试?邮递员能用吗?
  • 是的,邮递员工作得很好
  • 将原始网络请求详细信息与邮递员进行比较
  • 调试后我注意到它返回 422 错误,然后是 GraphQL Error: "expected at least one definition, found }: Undefined location";知道是什么原因造成的吗?
  • 它在邮递员中工作?对于完全相同的查询? ...没有请求子字段...突变def?返回类型?如果不是简单类型,则应请求其某些属性....mutation ...login( .. vars ) { HERE }

标签: flutter graphql mutation


【解决方案1】:

尝试使用,

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

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

【讨论】:

    猜你喜欢
    • 2020-06-22
    • 2019-06-11
    • 2021-11-18
    • 2020-12-26
    • 2021-08-17
    • 1970-01-01
    • 2018-11-30
    • 2021-08-14
    • 2021-06-14
    相关资源
    最近更新 更多