【问题标题】:How to spread a list in dart如何在飞镖中展开列表
【发布时间】:2019-07-09 14:02:20
【问题描述】:

在 Javascript 中,我会使用扩展运算符:

现在我对 Flutter 也有同样的问题:

 Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        MyHeader(),
        _buildListOfWidgetForBody(), // <- how to spread this <Widget>[] ????
        MyCustomFooter(),
      ],
    );
  }

【问题讨论】:

标签: dart flutter


【解决方案1】:

您现在可以从 Dart 2.3

进行传播
var a = [0,1,2,3,4];
var b = [6,7,8,9];
var c = [...a,5,...b];

print(c);  // prints: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

【讨论】:

    【解决方案2】:

    将此添加到未来版本的 dart https://github.com/dart-lang/language/issues/47 中存在问题

    但现在你可以使用sync*yield*

    Iterable<Widget> _buildChildren sync* {
      yield MyHeader();
      yield* _buildListOfWidgetForBody();
      yield MyCustomFooter();
    }
    

    编辑:从 Dart 2.3 开始,您现在可以这样做:

    Widget build(BuildContext context) {
        return Column(
          children: <Widget>[
            MyHeader(),
            ..._buildListOfWidgetForBody(),
            MyCustomFooter(),
          ],
        );
      }
    

    【讨论】:

      【解决方案3】:

      更新 - 2019 年 4 月 20 日

      Dart 2.3 发布以来,您现在可以使用扩展运算符了。

      List<int> a = [0,1,2,3,4];
      List<int> b = [6,7,8,9];
      List<int> c = [...a,5,...b];
      

      【讨论】:

      【解决方案4】:

      FireStore在模型中使用另一个字段

      authInstance
          .collection('fav_product')
          .add(
      {
      ...product.toMap(),
      'field':'value',
      }
      );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-24
        • 2018-10-15
        • 2021-10-12
        • 1970-01-01
        • 2019-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多