在Javascript中,我将使用传播运算符:
现在我对Flutter遇到了同样的问题:
Widget build(BuildContext context) {
return Column(
children: <Widget>[
MyHeader(),
_buildListOfWidgetForBody(), // <- how to spread this <Widget>[] ????
MyCustomFooter(),
],
);
}
Run Code Online (Sandbox Code Playgroud)
ikb*_*ben 22
您现在可以从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]
Run Code Online (Sandbox Code Playgroud)
Jor*_*ies 12
将此添加到未来版本的 dart https://github.com/dart-lang/language/issues/47 时存在问题
但现在你可以使用sync* 和yield*
Iterable<Widget> _buildChildren sync* {
yield MyHeader();
yield* _buildListOfWidgetForBody();
yield MyCustomFooter();
}
Run Code Online (Sandbox Code Playgroud)
编辑:从 Dart 2.3 开始,您现在可以执行以下操作:
Widget build(BuildContext context) {
return Column(
children: <Widget>[
MyHeader(),
..._buildListOfWidgetForBody(),
MyCustomFooter(),
],
);
}
Run Code Online (Sandbox Code Playgroud)
自Dart 2.3发布以来,您现在可以使用扩展运算符。
List<int> a = [0,1,2,3,4];
List<int> b = [6,7,8,9];
List<int> c = [...a,5,...b];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4619 次 |
| 最近记录: |