地图定义如下:
Map<String,dynamic> allAvailableTime;
当用户初始化页面时,映射应该为空:
我想在从地图中获取数据之前执行空检查,但是这些都不起作用…
检查1:
allAvailableTime == null ?
错误:type 'String' is not a subtype of type 'Widget'
检查2:
allAvailableTime == {} ?
检查应该返回True
,但它返回False
…
检查3:
allAvailableTime.isEmpty ?
错误3:The getter 'isEmpty' was called on null.
Receiver: null
Tried calling: isEmpty
To null检查。它应该是空的
void main() {
//1. Making Map Nullable
Map<String,dynamic>? allAvailableTime;
print(allAvailableTime==null);
//Output: true
//2. If you dont want to make it nullable
Map<String,dynamic> allAvailableTime1 = {};
print(allAvailableTime1.isEmpty);
//Output: true
}
没有NullSafety
void main() {
//1. Making Map Nullable
Map<String,dynamic> allAvailableTime;
print(allAvailableTime==null);
//Output: true
//2. If you dont want to make it nullable
Map<String,dynamic> allAvailableTime1 = {};
print(allAvailableTime1.isEmpty);
//Output: true
}
如果你想要一个空映射,你必须这样做。
Map<String,dynamic>? allAvailableTime;
你可以这样检查
Map<String, dynamic> allAvailableTime;
if (allAvailableTime?.isEmpty ?? true) {
// Returns true if there is no key/value pair in the map.
}