【发布时间】:2021-10-08 20:00:16
【问题描述】:
我遇到了这个奇怪的异常
'_InternalLinkedHashMap
我不知道 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<dynamic> foodLog= [];这样的空列表,或者您可以通过List<dynamic>? foodLog使其可以为空 -
不,我没有使用空安全,我还没有升级
-
你能提供你的输出吗?