Has*_*sen 2 iteration dart flutter
我尝试了其他一些解决方案,例如使用asMap()
和forEach
但不断收到不同的错误。就像是说 my 的返回类型ChartBar
不是匿名闭包定义的“MapEntry”,或者The expression here has a type of 'void', and therefore cannot be used.
Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.end,
children: myList.map((data) {
return ChartBar(
///etc
}).toList(),
)
Run Code Online (Sandbox Code Playgroud)
我也想要index
。
mirkancal 的建议不起作用,因为Map.map
返回另一个Map
(因此您传递的枚举回调预计将返回 a MapEntry
)。
相反Map.entries
,您需要使用,以便您可以使用Iterable.map
来构造一个List
:
Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.end,
children: myList.asMap().entries.map((MapEntry entry) {
return ChartBar(entry.key, entry.value);
}),
)
Run Code Online (Sandbox Code Playgroud)
您也可以使用 Dart 的新集合for
构造:
Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.end,
children: [for (MapEntry entry in myList.asMap().entries)
ChartBar(entry.key, entry.value)
],
)
Run Code Online (Sandbox Code Playgroud)
在上面,entry.key
将是索引,entry.value
并将是 中的原始值myList
。
归档时间: |
|
查看次数: |
12310 次 |
最近记录: |