【发布时间】:2021-04-28 08:37:54
【问题描述】:
在可选的类构造函数中,我们有:
final Widget? errorScreen;
const NoNetwork({Key? key, this.errorScreen}) : super(key: key);
在build 方法中,我想检查它是否不为空,widget.errorScreen 应该返回,否则应该返回Scaffold:
class _NoNetworkState extends State<NoNetwork> {
@override
Widget build(BuildContext context) {
if (widget.errorScreen == null) {
return Scaffold(
body: Center(
///
),
);
} else {
return widget.errorScreen;
}
}
}
因为errorScreen 可以为空,我们为此使用了? 通配符,我收到此错误:
'Widget?' 类型的值无法从“build”方法返回 因为它的返回类型是 'Widget'。
使用NoNetwork 类的简化:
class NetworkSensitive extends StatelessWidget {
///
@override
Widget build(BuildContext context) {
///
if (connectionStatus == ConnectivityStatus.WiFi) {
return child;
}
///
return const NoNetwork();
}
}
【问题讨论】: