> 到地图> 在飞镖?,flutter,dart"/>

首页 > 解决方案 > 如何更改地图> 到地图> 在飞镖?

问题描述

例如;

我想变身

{Aug 07, 2020: [Instance of 'ActivityLog', Instance of 'ActivityLog'], Aug 04, 2020: [Instance of 'ActivityLog'], Jul 29, 2020: [Instance of 'ActivityLog'], Jul 28, 2020: [Instance of 'ActivityLog']}

{Aug 07, 2020: [{MapData}, {MapData}], Aug 04, 2020: [{MapData}], Jul 29, 2020: [{MapData}], Jul 28, 2020: [{MapData}]}

标签: flutterdart

解决方案


由于在 Flutter 中还不能进行反射,因此您确实需要在 ActivityLog 中使用一个方法来创建类之外的映射。

所以它可以是这样的:

Map<String, dynamic> toMap() {
  return {
    'field1': field1,
    'field2': field2
  };
}

一旦你有了那个,你就可以使用这个.map()函数,像这样:

var map1 = {
    'Aug 07, 2020': [
      ActivityLog('x1', 'x2'),
      ActivityLog('y1', 'y2'),
    ]
  };

var map2 = map1.map((key, value) {
  return MapEntry(key, value.map((e) => e.toMap()).toList());
});

推荐阅读