【问题标题】:Flutter: conditional with nested Map inside the ListFlutter:在 List 内嵌套 Map 的条件
【发布时间】:2021-11-01 22:33:51
【问题描述】:
List aa = [
  {'live': true, 'name': 'John', 'code': 1},
  {'live': false, 'name': 'Doe',  'code': 2},
];

我有一个名为aa 的列表,如上所示。我想使用它使其有条件。首先,我要检查代码是否为 1,然后查找 live 的布尔值以显示 Text 小部件。

 aa.where((e) => e['code'] == 1).where((e) => e['live'])
              ? Text('alive!?')
              : Text('not alive!?'),

这给了我一个错误。可能是因为它返回的 Map 值不是 true 或 false 值。在这种情况下,如何取出live 值用于条件返回?

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    使用 for 循环执行此操作,它会起作用:

    for (var i in aa) {
      if(i['code'] == 1) {
        if(i['live']) {
          //YOUR WIDGET HERE
        } else {
          //YOUR WIDGET HERE
        }
      }
    }
    

    【讨论】:

      【解决方案2】:

      如果您想简化@Benyamin 的解决方案,可以使用以下代码:

      for (var item in aa.where((e) => e['code'] == 1)) item['live']
                      ? Text("alive!?")
                      : Text("not alive!?")
      

      【讨论】:

      • 需要注意的是,上面的代码仅作为for 元素在ListSet 文字中的集合才有意义。
      猜你喜欢
      • 1970-01-01
      • 2018-11-25
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      相关资源
      最近更新 更多