【问题标题】:'_InternalLinkedHashMap<dynamic, Map<String, dynamic>>' is not a subtype of type 'Map<String, dy namic>' of 'other''_InternalLinkedHashMap<dynamic, Map<String, dynamic>>' 不是'other' 的'Map<String, dy namic>' 类型的子类型
【发布时间】:2021-10-08 20:00:16
【问题描述】:

我遇到了这个奇怪的异常

'_InternalLinkedHashMap>' 不是'other' 的'Map' 类型的子类型。

我不知道 Map> 不是 Map> 类型的子类型

我第一次运行代码时它可以正常工作,因为它可以访问 else 部分。第二次访问第一部分时会产生上述异常。

Future addMeal(meal,mealName,date,cal,protein,carbs,fats) async{
 List<dynamic> foodLog= List<dynamic>();

 Map <String,dynamic> temp = Map();


await users.document(user.uid).get().then((doc) {
  foodLog = doc.data['foodLog'];
  int i = 0;
  while(i<=foodLog.length-1) {
    if (foodLog[i].containsKey(date)) {
      temp = foodLog[i];

      temp['$date']['$meal'].addAll({
        mealName:{'cal':cal,'protein':protein,'carbs':carbs,'fats':fats}

      });

      foodLog[i] = temp;
      break;
    } else {
      i++;
    }
  }
  if(i==foodLog.length){
    temp = {'$date':{'Breakfast':{},'Dinner':{},'Lunch':{},'Snacks':{}}};
    temp['$date']['$meal'].addAll({
     mealName:{'cal':cal,'protein':protein,'carbs':carbs,'fats':fats}
   });
  }
});
foodLog.add(temp);
print(foodLog);
return await users.document(user.uid).updateData({
  'foodLog':foodLog
});

}

输出

FoodLog 输出:

{2021 年 8 月 3 日:{早餐:{鱼片:{碳水化合物:0.0,脂肪:1.7,蛋白质:20.08,卡路里:95}},晚餐:{},小吃:{},午餐:{}} }

E/flutter (6596): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] 未处理异常:类型 '_InternalLinkedHashMap>' 不是类型 ' 的子类型地图' 的“其他”

【问题讨论】:

  • 嗨 Saeed,错误发生在哪一行?
  • 嗨,乔治,temp['$date']['$meal'].addAll({ mealName:{'cal':cal,'protein':protein,'carbs':carbs,'脂肪':脂肪} });
  • 你在使用null-safety吗?制作像 List&lt;dynamic&gt; foodLog= []; 这样的空列表,或者您可以通过 List&lt;dynamic&gt;? foodLog 使其可以为空
  • 不,我没有使用空安全,我还没有升级
  • 你能提供你的输出吗?

标签: flutter dart


【解决方案1】:

我认为您需要将您的项目投射到Map&lt;String, Map&lt;String, dynamic&gt;&gt;。那么它应该可以工作了。

temp['$date']['$meal'].addAll({
     mealName:{'cal':cal,'protein':protein,'carbs':carbs,'fats':fats}
   } as Map<String, Map<String, dynamic>>);

【讨论】:

    猜你喜欢
    • 2018-12-14
    • 2019-04-03
    • 2023-04-02
    • 2019-05-02
    • 1970-01-01
    • 2021-10-06
    • 2018-09-24
    • 2019-03-23
    • 1970-01-01
    相关资源
    最近更新 更多