我正在调用Web API并接收Profile模型作为响应。当我使用下面的代码时,它抛出了一个错误:
try{
if(profile.message.isEmpty){
Navigator.of(context).pushNamed("/home");
}else if(profile == null){
_showDialog("Please check your internet connection");
}else{
_showDialog("Please enter valid credentials");
}
}catch(exception){
print(exception);
}
答案 0 :(得分:2)
这是因为public class MyBootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent intentService = new Intent(context, TestService.class);
ContextCompat.startForegroundService(context, intentService);
}
}
}
返回profile.message
。您可能想要
null
如果表达式的前一部分为if(profile?.message?.isEmpty ?? true)
, ?
可防止错误,如果表达式的前一部分为{{1},则null
的结果为?? true
},因此true
检查中将null
和== null
视为相同。
答案 1 :(得分:0)
判断数组为空时,用什么来判断? Dart提供了isNotEmpty,但是在使用中经常报错,因为你当时的数组可能不是[]和null。使用全文本时多加一层判断
如果您的要求只是空的或空的,您可以使用 Dart 的安全导航操作符使其更简洁:
作为 isEmpty
函数,如果参数为 null 或空字符串则返回 true
。
if (routeinfo["my_value"]?.isEmpty ?? true) {
//
}
另一种写法:
if ((value ?? '') == '') { ... }
也这样做
return (list == null || list .isEmpty) ? Container() : Container(child:Text('The current array is not empty'));