[英]how to create empty constructor in dart?
在這里,我想創建一個空構造函數來打印空構造函數被稱為消息,但它顯示嘗試添加初始化程序錯誤。
class ReusableCard extends StatelessWidget {
final Color color;
ReusableCard(){
print('empty const is called');
}
ReusableCard(this.color);
@override Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.all(15.0),
//TODO:use decorator only if colors are added inside in it.
decoration: BoxDecoration(
color: Color(0xFF1D1E20),
borderRadius: BorderRadius.circular(10.0),
),
// width: 100,
height: 100,
);
}
}
class ReusableCard extends StatelessWidget {
final Color color;
ReusableCard():
this.color = const Color(0xFF1D1E20)
{
print('empty const is called');
}
....
}
由於您的color
變量是最終的,因此您必須在空的構造函數上對其進行初始化。
class ReusableCard extends StatelessWidget {
final Color color;
ReusableCard() {
this.color = const Colors.blue;
print('empty const is called');
}
ReusableCard(this.color);
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.all(15.0),
//TODO:use decorator only if colors are added inside in it.
decoration: BoxDecoration(
color: Color(0xFF1D1E20),
borderRadius: BorderRadius.circular(10.0),
),
// width: 100,
height: 100,
);
}
}
dart 中不允許重復默認構造函數,因此您需要使用命名構造函數,如下所示:
ReusableCard.empty() {
print('empty');
}
查看您的 class:
class ReusableCard extends StatelessWidget {
final Color color;
ReusableCard.empty() {
print('empty');
}
ReusableCard(this.color);
@override Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.all(15.0),
//TODO:use decorator only if colors are added inside in it.
decoration: BoxDecoration(
color: Color(0xFF1D1E20),
borderRadius: BorderRadius.circular(10.0),
),
// width: 100,
height: 100,
);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.