> 动态,list,firebase,flutter,dart"/>

首页 > 解决方案 > 如何将列表添加到地图> 动态

问题描述

我正在从保存在列表中的 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))

我做错了什么?我怎样才能达到预期的效果?

标签: listfirebaseflutterdart

解决方案


我猜你忘了初始化地图:

myMap = {};

推荐阅读