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