list - 如何将列表添加到地图> 动态
问题描述
我正在从保存在列表中的 firebase 获取我的文件。目前我在列表中有这个内容:
[{date: 02/02/2019, name: John}, {date: 03/03/2020, name: Louise}]
然后,在下面的方法中,我将此列表转换为具有所需格式的地图。
Map formatMap(list){
if(list.length > 1){
for(int i = 0; i < list.length; i ++){
dateFormatted = _formatDate(list[i]['date']);
print(dateFormatted);
if(i == 0){
myMap[dateFormatted] = [];
}
myMap[dateFormatted].add({'date': list[i]['date'], 'name': events[i]['name']});
}
}else{
dateFormatted = _formatDate(list['date']);
myMap[dateFormatted] = [{'date': list['date'], 'name': list['name']}];
}
return myMap;
}
我这样做是因为我的预期结果是:
{2020-12-31 12:00:00.000Z: [{date: 02/02/2019, name: John}, {date: 03/03/2020, name: Louise}]}
但是运行该方法的返回是:
[错误:flutter/lib/ui/ui_dart_state.cc(177)] 未处理的异常:NoSuchMethodError:在 null 上调用了方法“[]=”。E/flutter(17862):接收者:null E/flutter(17862):尝试调用:[]=('DateTime'的实例,'_GrowableList'的实例(长度:0))
我做错了什么?我怎样才能达到预期的效果?
解决方案
我猜你忘了初始化地图:
myMap = {};
推荐阅读
- java - postgresql@10-main.service 失败,因为超出了配置的资源限制
- javascript - npm start 不起作用,但调试有效
- javascript - Endless draw/undraw SVG path loop using vanillaJS
- vb.net - cmbComboBox.SelectionStart always returns zero irrespective of cursor location
- winapi - 在 waveOutOpen 抛出后释放 pwfx
- javascript - Jquery Datatables 仅使用 codeigniter 更新数据库 sql 中我的一半数据
- android - 我应该使用 selenium、appium 还是 selendroid?
- c - C 插入排序程序因许多输入而失败
- kubernetes - 是否可以自动缩放 Akka
- mql4 - MQL4 (Metatrader 4 prog 语言) OrderSend() , 止盈和止损变量