【问题标题】:The operator '[]' isn't defined for the type 'Object' with FlutterFlutter 没有为“Object”类型定义运算符“[]”
【发布时间】:2021-10-05 10:30:03
【问题描述】:

我进行了很多搜索并尝试了所有可能的解决方案,但无法解决我的问题。

这是我的代码

late QuerySnapshot searchSnapshot;

Widget searchList() {
return searchSnapshot != null
    ? ListView.builder(
        itemCount: searchSnapshot.docs.length,
        shrinkWrap: true,
        itemBuilder: (context, index) {
          return SearchList(
            userName: searchSnapshot.docs[index].data()!['name'], //error on ['name']
            userEmail: searchSnapshot.docs[index].data()!['email'], //error on ['email']
          );
        })
    : Container();
}

错误:

没有为“对象”类型定义运算符“[]”。尝试定义运算符'[]'。

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    当您定义searchSnapshot 时,您会丢失data 的类型。

    尝试将其更改为:

    late QuerySnapshot<Map<String, dynamic>> searchSnapshot;
    

    【讨论】:

    • 现在我面对的是lateinitializationerror
    • 这完全是一个不同的问题。这意味着您永远不会将其值分配给searchSnapshot。但我真的猜不出你分享的代码为什么。
    【解决方案2】:

    看起来函数 data() 需要返回一个 Map,而不是 Object

    【讨论】:

    • 怎么写?
    猜你喜欢
    • 2021-04-03
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 2021-08-18
    • 2021-09-10
    • 2022-01-05
    • 2022-11-23
    • 1970-01-01
    相关资源
    最近更新 更多