flutter - 如何更改地图> 到地图> 在飞镖?
问题描述
例如;
我想变身
{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<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());
});
推荐阅读
- javascript - 如何使用嵌套组件对组件进行快照测试?
- ios - Swift - 根据日期数组对不同的数组进行排序
- php - 如何在 WordPress 中为已注销的用户添加重定向异常
- python - 以 JSON 格式发送 OpenCV 图像
- git - 如何将 GitHub QGumboParser 库添加到 macOS 上的 Qt 项目?
- javascript - 来自屏蔽输入文本的时刻 js 无效日期
- c++ - 无法手动调用 std::string 的析构函数
- c++ - 更改常量 Mat opencv 的值
- vuejs2 - 如何为 v-treeview 添加右键单击事件以在 vuetify 中打开菜单?
- java - MapReduce 项目的 Mapper 部分中的多个错误