我的StatelessWidget中的列就是这种情况



颤振

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。

如何解决此问题?

因为titleicon在运行时可以为null,但Column()不允许在将为null的children中添加Widgets

您可以像title!一样在title上添加一个null检查,iconicon!也是如此,或者当标题和图标在运行时为null时,您可以为它们指定一个常量Widget。像这样的

Column(
children: <Widget>[
title ?? const Offstage(),
icon ?? const Offstage(),
],
),

相关内容

最新更新