Reputation: 20436
In Javascript I would use a spread operator:
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
Reputation: 1
FireStore use another field in model
authInstance
.collection('fav_product')
.add(
{
...product.toMap(),
'field':'value',
}
);
Upvotes: 0
Reputation: 17756
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
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
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