Flutter/Dart如何将Map<int, List<Map<String,dynamic>>>转为Map<int, List<StatisticsData>>
错误根因
Dart 中 Map 类的 map() 转换方法要求传入的闭包必须返回 MapEntry<K, V> 类型,你之前的写法直接返回了 {key: 处理后的值} 的 Map 字面量,类型不符合要求因此抛出报错。
修复代码
直接将转换逻辑里返回 Map 字面量的逻辑改为返回 MapEntry 即可:
Map<int, List<StatisticsData>> statisticsData = groupByType.map( (key, value) => MapEntry( key, value.map((e) => StatisticsData(e['date'], e['total'])).toList(), ), );
修改后即可完成从 Map<int, List<Map<String, dynamic>>> 到 Map<int, List<StatisticsData>> 的类型转换。
内容的提问来源于stack exchange,提问作者hesham shawky
相关产品推荐
相关产品推荐

