Gir*_*ldi 8 constructor properties dart spread-syntax flutter
在我的flutter应用程序中,我有如下小部件:
Container(
decoration: BoxDecoration(
border: Border.all(
color: Colors.red,
width: 2,
style: BorderStyle.solid,
),
),
child: Text('Container 1'),
)
Run Code Online (Sandbox Code Playgroud)
Container(
decoration: BoxDecoration(
border: Border(
top: BorderSide(
color: Colors.red,
width: 2,
style: BorderStyle.solid,
),
),
),
child: Text('Container 2'),
)
Run Code Online (Sandbox Code Playgroud)
两者的边框使用相同的属性。所以我想知道是否有一种类似扩展运算符的方法可以为两个小部件插入相同的属性?也许像:
const borderBase = (
color: Colors.red,
width: 2,
style: BorderStyle.solid,
)
Container(
decoration: BoxDecoration(
border: Border.all(
...borderBase,
),
),
child: Text('Container 1'),
)
Container(
decoration: BoxDecoration(
border: Border(
top: BorderSide(
...borderBase,
),
),
),
child: Text('Container 2'),
)
Run Code Online (Sandbox Code Playgroud)
哪有这回事。
扩展运算符正在开发中,但它仅适用于列表,不适用于类 ( https://github.com/dart-lang/language/issues/47 )
你可以这样做:
const BorderSide borderBase = BorderSide(
color: Colors.red,
width: 2,
style: BorderStyle.solid,
);
Container(
decoration: BoxDecoration(
border: Border.all(
color: borderBase.color,
width: borderBase.width,
style: borderBase.style,
),
),
child: Text('Container 1'),
)
Container(
decoration: BoxDecoration(
border: Border(
top: borderBase,
),
),
child: Text('Container 2'),
)
Run Code Online (Sandbox Code Playgroud)
不是最好的,但仍然有一些重用。
| 归档时间: |
|
| 查看次数: |
4764 次 |
| 最近记录: |