graphql_flutter 突变小部件显示错误 -

Sum*_*ans 0 dart flutter graphql-flutter

我不确定我是否完全理解这个错误。任何有使用 graphql_flutter 包经验的人请帮忙。对 Flutter 和 graphql 来说是全新的。但到目前为止我已经弄清楚了后端。

我的突变在 graphiql 中工作,试图使其在 flutter 中工作。当我将鼠标悬停在这些红线上时,会出现此错误。

错误 - 参数类型“列函数(MultiSourceResult Function(Map <String,dynamic>,{Object?optimisticResult}),QueryResult)”无法分配给参数类型“Widget Function(MultiSourceResult Function(Map <String,dynamic)” >,{Object?optimisticResult}),QueryResult?)'。(文档)

这是片段 - 在此输入图像描述

class GraphQlMutations {

  String createUser() { return"""
    mutation createUser(\$id: String!, \$name: String!, \$email: String!) {
      createUser(objects: [{ id: $id, name: $name, code: $code }]) {
        returning {
          id
          name
          email
        }
      }
    }
  """;
  } 
}
Run Code Online (Sandbox Code Playgroud)

Enz*_*nzo 8

比较错误中的两个声明并查看差异:

Column Function(MultiSourceResult Function(Map<String, dynamic>, {Object? optimisticResult}), QueryResult)
Widget Function(MultiSourceResult Function(Map<String, dynamic>, {Object? optimisticResult}), QueryResult?)
Run Code Online (Sandbox Code Playgroud)

由于Column是 a Widget,唯一真正的区别是 的可为空性QueryResult。因此,改变

builder: (RunMutation createUser, QueryResult result)
Run Code Online (Sandbox Code Playgroud)

到

builder: (RunMutation createUser, QueryResult? result)
Run Code Online (Sandbox Code Playgroud)

并处理结果为空的情况。