簡體   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