我遇到了一个奇怪的例外
'_InternalLinkedHashMap
我不知道怎么画地图
第一次运行代码时,它可以正常工作,因为它可以访问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/flatter(6596):[错误:flatter/lib/ui/ui_dart_state.cc(177)]未处理的异常:类型'\u InternalLinkedHashMap
我认为你需要将你的物品投射到地图上
temp['$date']['$meal'].addAll({
mealName:{'cal':cal,'protein':protein,'carbs':carbs,'fats':fats}
} as Map<String, Map<String, dynamic>>);
在存储到本地数据库之前,将字符串转换为对象的正确方法是什么? 这是的输出: 我试图将其转换为CreatedBy对象 创造的 这里是我的本地表列 错误
如果flatter中存在列表,是否会处理列表映射? 在上面的类中,我们需要手动将json转换为电影列表吗?
我是颤振初学者。我得到这样的JSON响应时出错。 我一直在论坛上寻找这个问题,我发现是这样的。 但我不懂如何编写函数。这是我的密码。 还有像这样的错误。 我很抱歉问了同样的问题,因为我不明白
我有点被某些情况困住了。 1)
我正在开发一个依靠API REST调用的flutter应用程序。来自API的响应有点复杂。当调用我的API(例如:api/产品)时,我可以从日志中看到响应:但是我有这个错误: 类型列表 StackTrace: [更新]:退货产品响应。fromJson(response)而不是response ProductsRespository: ProductsBloc: 回应: ApiProvider: 模
我有错误从标题时试图这样做 > 我创建了@JsonSerialiazable()类来处理json 然后,在调用http时。get(),我执行以下操作: map变量如下所示: 当调用$MyResponseFromJson(json)时,当它试图从我的响应中执行(json['a']as List)时,它会给出一个错误。g、 构建运行程序生成的dart文件。 我如何修复错误? 谢啦