#flutter #if-statement
#сбой #оператор if
Вопрос:
{«data»:[{«id»:»32f»,»regionName»:»Korea»,»companyName»:»Machine»,»catDealerCode»:null},{«id»:»cbb»,»regionName»:»Korea»,»companyName»:»KR»,»catDealerCode»:null},{«id»:»b6125b0e-5ec9″,,»regionName»:»China»,»companyName»:»CHN»,»catDealerCode»:null}],»code»:0,»message»:null}
У меня есть данные, подобные тем, которые вы видите выше. Я извлекаю данные в соответствии с названием компании. но в некоторых странах нет данных. Я хочу создать регистр if else в этом. но независимо от того, что я делаю, когда говорю element == null, он не принимается. Кто-нибудь знает, где я делаю неправильно? Как я должен создать if else для пустых данных?
onTap: () async {
List<Country> country =
await fetchList(
snapshot.data.code);
country.forEach((element) {
if(element.companyName == null){
print('element is empty');
}else{
print('Here ${element.companyName}');
}
});
},
И вот мои данные из списка стран;
{«data»:[{{«code»:»KR»,»name»:»Korea»,»isActive»:true,»id»:»71″},{«code»:»RU»,»name»:»Rusia»,»isActive»:true,»id»:»3c»},{«code»:»Ch»,»name»:»China»,»isActive»:true,»id»:»86″}],»code»:0,»message»:null}
class Country {
String id;
String companyCode;
String countryCode;
String countryId;
String regionName;
String companyName;
Null catDealerCode;
Country(
{this.id,
this.companyCode,
this.countryCode,
this.countryId,
this.regionName,
this.companyName,
this.catDealerCode});
Couuntry.fromJson(Map<String, dynamic> json) {
id = json['id'];
companyCode = json['companyCode'];
countryCode = json['countryCode'];
countryId = json['countryId'];
regionName = json['regionName'];
companyName = json['companyName'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['companyCode'] = this.companyCode;
data['countryCode'] = this.countryCode;
data['countryId'] = this.countryId;
data['regionName'] = this.regionName;
data['companyName'] = this.companyName;
return data;
}
}
Комментарии:
1. Пожалуйста, правильно отформатируйте свой код и сделайте отступы, иначе вам никто не поможет.
2. извините, я здесь новенькая. Я все еще не могу привыкнуть к этому, так ли это более организованно? Я не хотел копировать всю страницу целиком, потому что именно здесь находится соответствующая часть. Иногда я получаю предупреждение типа «расширить описание», когда пишу слишком много кода,
3. Это
companyName
действительноnull
или это простоempty string
? Можете ли вы добавить пример, в котором уCompany
нетcompanyName
? @kimSoo4. на самом деле, если нет названия компании, оно не включается в данные
Ответ №1:
Я бы выбрал оператор с нулевым значением:
onTap: () async {
List<Country> country =
await fetchList(
snapshot.data.code);
country?.forEach((element) {
if(element?.companyName == null){
print('element is empty');
}else{
print('Here ${element.companyName}');
}
});
},
Комментарии:
1. Я пробовал это решение, но оно не работает :/. Он печатается как «Здесь ….», но при нажатии на пустой элемент он не говорит «элемент пуст»
2. Я извлекаю его из других данных, но я добавил его в свой вопрос
3. Пожалуйста, добавьте свой класс country в свой вопрос.
4. Я добавил свой класс country
5. Я предполагаю, что вы используете пакет json_serializable с параметром null, установленным по умолчанию (что является true), который должен возвращать вам пустую строку для вашего
element.companyName
when null . Уверен, что вы могли бы сделатьif(element?.companyName == null || element?.companyName?.isEmpty)
(но мне не очень нравится это решение …)