在此處輸入圖片說明
這里的代碼建構式的 this.colour 變數不起作用
class ReusableCard extends StatelessWidget {
Color colour= null;
ReusableCard({@required this.colour});
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.all(15),
decoration: BoxDecoration(
color: colour,
borderRadius: BorderRadius.circular(10.0),
),
);
}
}
uj5u.com熱心網友回復:
由于空安全,問題是顯示警告訊息。
在類級別Color需要在讀取時間之前進行初始化。在您的情況下,您使用的是命名建構式,它默認用作可選引數。你可以required在建構式上做。
final Color colour;
const ReuseableCard({
Key? key,
required this.colour,
}) : super(key: key);
或者使它可以為空,正如@EnviroApps 提到的那樣。但對于這種情況,我更喜歡上面的答案。
了解有關空安全的更多資訊
uj5u.com熱心網友回復:
此代碼應該可以解決您的問題:
ReusableCard({this.colour});
Color? colour;
因為尚未分配顏色,所以它可以為空。Dart 具有空安全性,所以問號暗示該值可以為空。有關更多詳細資訊,請參閱此鏈接:https : //sanjibsinha.com/null-safety-in-flutter-dart/
編輯:你也可以這樣做:
ReusableCard({this.colour});
late Color colour;
在第一次讀取變數時初始化變數的 late 關鍵字,而不是在創建變數時
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/386112.html
