flutter - Dart:未为类型 '[]' 定义运算符 'Object? Function()' 。尝试定义运算符 '[]'

标签 flutter dart

我正在创建一个 Flutter 应用程序,但在实现 Firebase 时陷入困境。

    enter  return Container(
        child: StreamBuilder<QuerySnapshot>(
            stream: quizStream.snapshots(),
            builder: (context, snapshot) {
              return snapshot.data != null
                  ? Container()
                  : ListView.builder(
                      itemCount: snapshot.data!.docs.length,
                      itemBuilder: (context, index) {
                        return QuizTile(
                          ImgUrl: snapshot.data!.docs[index].data()["imgdesc"] ,
                        );
                      });
            }));
  }

ImgUrl: snapshot.data!.docs[index].data()["imgdesc"]

这是我收到错误的行,它告诉我:

the operator '[]' isn't defined for the type 'Object? Function()'. Try defining the operator '[]'.

最佳答案

您需要将其转换为 Map<String,dynamic>

ImgUrl: snapshot.data!.docs[index].data() as Map<String,dynamic>["imgdesc"],

或者使用这个:

ImgUrl: snapshot.data!.docs[index].get('imgdesc'),

关于flutter - Dart:未为类型 '[]' 定义运算符 'Object? Function()' 。尝试定义运算符 '[]',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72157400/

相关文章:

Dart 模板和 {{}} 占位符在点击

function - 如何使用flutter和firebase实时数据库发送fcm通知

flutter - Provider 中是否有任何属性明智的 notifyListerners 选项?

firebase - 刷新小部件时Stream.asFuture()复制数据

callback - Flutter - 从一个子类调用方法到另一个子类

sqlite - 获取 'Dart_NewString':在构建dart-sqlite时找不到标识符

flutter - Flutter Web 中的滚动功能

flutter - Dart HTTP软件包在内置APK中不起作用

flutter - Dart,在代理模式中以 DRY 或合成方式覆盖许多 getter 和 setter

flutter - Flutter-文本字段更改后,TextField Controller 未更新