我想为图像添加条件,但它显示了一个错误的_setImage()
,如何修复它?
正文可能正常完成,导致返回"null",但返回类型"String"可能是不可为null的类型。请尝试在结尾添加return或throw语句。
class _SplashScreenState extends State<SplashScreen> {
final String appName = AppConfig.appName;
String _setImage() {
if(appName.isNotEmpty == '') {
return 'assets/something1.png';
} else if(appName.isNotEmpty == '') {
return 'assets/something2.png';
}
}
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
image: DecorationImage(
fit: BoxFit.cover,
image: AssetImage(_setImage()) //call your method here
),
),
);
}
}
5条答案
按热度按时间t9aqgxwy1#
这是因为appName.isNotEmpty已经是一个条件。
要修复:
zazmityj2#
isNotEmpty是一个getter函数,它返回一个布尔值,这就是为什么您可以简单地调用它,而无需向它添加更多条件。
t9eec4r03#
appName.isNotEmpty已经是一个条件。
按如下方式更改代码:
tp5buhyn4#
最简单的答案是尝试添加默认返回,
你为什么要面对这个错误?
因为你的返回类型是
String
,并且只有当第一个if中有appName.isNotEmpty == ''
,第二个if中有appName.isNotEmpty == ''
时,你才返回String
。如果
appName.isNotEmpty == ''
条件不满足怎么办?所以你需要一个默认的返回值。建议:
如果不需要第二个其他代码,请将代码更改为:
chy5wohz5#
显示此错误是因为您的函数的返回类型是String,而String是不可空的**。
您还没有编写代码来说明如果两个条件都不为真,则返回什么。
以下是两种解决方案。
1.尝试使_setImage()的返回一个可以为空的String。那么函数的返回类型应该是**String?**如下面的代码片段。
1.在函数可能返回的每个位置返回一个String。
但是,我建议您使用这个包another_flutter_splash_screen 1.1.4,因为它是高度可定制的闪屏。