颤振如何检查地图是否为空?



地图定义如下:

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.
}

最新更新