颤振
class MyCard extends StatelessWidget {
Widget ?title;
Widget ?icon;
MyCard({Key? key, this.title, this.icon});
@ override
Widget build(BuildContext context) {
return Container(
child: Card(
child: Column(
children: <Widget>[
title,
icon
],
),
),
);
}
}
我得到以下错误:"Widget?"类型的值无法分配给"Widget"类型的变量,因为"Widget?"可为null,而"Widget"不可为null。
如何解决此问题?
因为title
和icon
在运行时可以为null,但Column()
不允许在将为null的children
中添加Widgets
。
您可以像title!
一样在title
上添加一个null检查,icon
到icon!
也是如此,或者当标题和图标在运行时为null时,您可以为它们指定一个常量Widget
。像这样的
Column(
children: <Widget>[
title ?? const Offstage(),
icon ?? const Offstage(),
],
),