例如;
我想转变

{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}]}

最佳答案

由于在Flutter中无法进行反射,因此您确实需要在ActivityLog中使用一个方法来在类之外创建 map 。
因此可能是这样的:

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());
});

关于flutter - 如何在Dart中将Map <String,List <ClassObj >>更改为Map <String,List <Map >>?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63406977/

10-11 09:13