TSR
TSR

Reputation: 20436

How to spread a list in dart

In Javascript I would use a spread operator:

enter image description here

Now I have the same problem with Flutter:

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

Upvotes: 69

Views: 36827

Answers (4)

Muhammad Umar
Muhammad Umar

Reputation: 1

FireStore use another field in model

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

Upvotes: 0

Miguel Ruivo
Miguel Ruivo

Reputation: 17756

Update - 20th April 2019

You can now use the spread operator since Dart 2.3 was released.

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

Upvotes: 11

ikben
ikben

Reputation: 4625

You can now do spreading from 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]

Upvotes: 107

Jordan Davies
Jordan Davies

Reputation: 10861

There is an issue to add this to future version of dart https://github.com/dart-lang/language/issues/47

but for now you can use sync* and yield*

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

EDIT: As of Dart 2.3 you can now do:

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

Upvotes: 14

Related Questions