Has*_*sen 2 null class dart flutter
由于它是一个可选值,它有时会为空,那么如何避免它抛出错误呢?这是唯一的方法吗?
class QText extends StatelessWidget {
QText(this.text, this.size, [this.bold]);
final String text;
final double size;
bool bold;
@override
Widget build(BuildContext context) {
bold = (bold == null) ? false : bold;
return Whatever..
}
}
Run Code Online (Sandbox Code Playgroud)
我想这样做,但当然它不起作用:
class QText extends StatelessWidget {
QText(this.text, this.size, [this.bold]);
final String text;
final double size;
final bool bold ?? false;
@override
Widget build(BuildContext context) {
return Whatever..
}
}
Run Code Online (Sandbox Code Playgroud)
由于字段是最终尝试在构造函数初始化期间传递默认值。
还要添加一条assert
语句以确保它永远不会初始化为null
.
例子:
class QText extends StatelessWidget {
QText(this.text, this.size, [this.bold = false]) : assert(bold != null);
final String text;
final double size;
final bool bold;
@override
Widget build(BuildContext context) {}
}
Run Code Online (Sandbox Code Playgroud)
希望有帮助!