繁体   English   中英

例外:“字符串”类型不是“地图”类型的子类型<dynamic, dynamic> ' 在 flutter 的类型中</dynamic,>

[英]Exception: type 'String' is not a subtype of type 'Map<dynamic, dynamic>' in type cast in flutter

当我创建一个实时数据库表时,我得到了表数据但我得到了一个错误:类型'String'不是类型转换中'Map<dynamic,dynamic>'类型的子类型

FirebaseAnimatedList(
        query: dbRef,
        itemBuilder: (BuildContext context, DataSnapshot snapshot,
          Animation<double> animation, int index) {
        Map data = snapshot.value as Map;
        data['key'] = snapshot.key;
        return listItem(data);
         },
      ),

我得到了结果

在此处输入图像描述

这里 snapshot.data 是 map 和 snapshot.value 是字符串

尝试

Map data = snapshot.data as Map;

如果它是使用jsonDecode 或者,您可以使用以键、值对 Map 的形式出现的 snapshot.data。

FirebaseAnimatedList(
        query: dbRef,
        itemBuilder: (BuildContext context, DataSnapshot snapshot,
          Animation<double> animation, int index) {
        Map data = jsonDecode(snapshot.value.toString());

// or
Map data = snapshot.data;


// Now do what you want to do
        data['key'] = snapshot.key;
        return listItem(data);
         },
      ),

我认为您的查询返回单个值,首先对其进行测试

itemBuilder: (BuildContext context, DataSnapshot snapshot,
    Animation<double> animation, int index) {
  return Text("${snapshot.value}");
},

现在要获取 map,可以获得 null 值,对于这种情况,请执行

itemBuilder: (BuildContext context, DataSnapshot snapshot,
    Animation<double> animation, int index) {
  Map? data = snapshot.value as Map?;
  final String? key = snapshot.key;
  return Text("Your ItemBUilder : $key ${data.toString()}");
},

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Flutter StreamBuilder小部件错误:类型'()=&gt; Map<string, dynamic> ' 不是类型 'DocumentSnapshot 的子类型<object?> ' 在类型转换中</object?></string,> 扑动:输入'_InternalLinkedHashMap<object?, object?> ' 不是 'Map 类型的子类型<string, dynamic> '</string,></object?,> 未处理的异常:类型 '_InternalLinkedHashMap<string, dynamic> ' 不是类型 'List 的子类型<dynamic> ? 在类型转换中</dynamic></string,> 输入'列表<map<string, dynamic> &gt;' 不是 'Map 类型的子类型<dynamic, dynamic> ' </dynamic,></map<string,> 错误:键入 '() => Map<string, dynamic> ?' 不是类型“Map”的子类型<string, dynamic> ?'</string,></string,> 获取存储 | _CastError(“字符串”类型不是“列表”类型的子类型<dynamic> ? 在类型转换中)</dynamic> 输入“未来” <querysnapshot<map<string, dynamic> >>' 不是类型 'DocumentSnapshot' 的子类型<object?> ' 在类型转换中</object?></querysnapshot<map<string,> Flutter/Firestore 返回类型列表<review>不是类型“Map”的子类型<string, dynamic> ' 从 Stream 检索快照时</string,></review> Flutter 返回错误类型 'List<dynamic> ' 不是类型 'String' 的子类型</dynamic> 输入“列表<dynamic> ' 不是类型 'String' 的子类型</dynamic>
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM