флаттер как проверить, является ли карта нулевой?

#android #flutter

Вопрос:

карта определена следующим образом:

 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
 

Ответ №1:

Для Проверки на ноль. Это должно быть аннулировано

 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
}
 

Без нулевой безопасности

 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
}

 

Комментарии:

1. спасибо, очень полезно

Ответ №2:

Если вам нужна нулевая карта, вы должны это сделать.

 Map<String,dynamic>? allAvailableTime;
 

Комментарии:

1. я не использую нулевую версию безопасности

Ответ №3:

Вы можете проверить вот так

 Map<String, dynamic> allAvailableTime;
 if (allAvailableTime?.isEmpty ?? true) {
  // Returns true if there is no key/value pair in the map.
 }