【问题标题】:Dart/Flutter How to access element of Map inside a listDart/Flutter 如何访问列表中的 Map 元素
【发布时间】:2020-08-13 11:11:46
【问题描述】:

当 Map 在列表中时,如何通过键访问 Map 元素值?

'rooms': [
        {
          'roomNumber': 1,
          'roomBeds': 1,
          'roomColor': 1,
          'roomNumOfDwellers': 0,
          'roomDwellers': [
          ]
        },
        {
          'roomNumber': 2,
          'roomBeds': 3,
          'roomColor': 2,
          'roomNumOfDwellers': 0,
          'roomDwellers': [
          ]
        },
      ]

试过了,不行:

myPODO.rooms[1].['roomBeds']

错误信息是:

类“_InternalLinkedHashMap”没有实例获取器“roomBeds”。 接收方:_LinkedHashMap 长度:5 尝试调用:roomBeds

【问题讨论】:

  • 我们可以看看您是如何获得 myPODO 的吗?

标签: flutter dart


【解决方案1】:

将项目存储在 Map 列表中,然后您可以按键名打印值。

void main() {

  List<Map<String, dynamic>> rooms = [
        {
          'roomNumber': 1,
          'roomBeds': 1,
          'roomColor': 1,
          'roomNumOfDwellers': 0,
          'roomDwellers': [
          ]
        },
        {
          'roomNumber': 2,
          'roomBeds': 3,
          'roomColor': 2,
          'roomNumOfDwellers': 0,
          'roomDwellers': [
          ]
        },
      ];

  print(rooms[1]['roomBeds']);
}

【讨论】:

  • 成功了,非常感谢!问题出在房间 [1] 和 ['roomBeds'] 之间的点上,不需要它。
  • @AleksanderBarsukov 如果此答案解决了您的问题,您可以通过单击答案旁边的复选标记将其标记为已接受的答案。
  • 我在回信之前尝试这样做,但显然,我还没有足够的声誉来这样做。我保证在获得所需的声誉后会回复并支持您的答案:)
【解决方案2】:

尝试替换

myPODO.rooms[1].['roomBeds']

myPODO.rooms[1]['roomBeds']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 2021-10-31
    • 1970-01-01
    • 2021-09-03
    • 2021-02-25
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    相关资源
    最近更新 更多