Flutter 遍历 List 并访问索引

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

jam*_*lin 8

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