String? get clientDefaultName => switch (this) {
schoolProvince => '全国',
schoolFeature => '不限',
schoolOwnership => null,
schoolLevel => null,
schoolType => '不限',
examType => '不限',
admissionType => '不限',
region => null,
category => null,
shortlistRatio => '不限',
assessmentMethod => '不限',
};
return FilterGroup(
type: groupType,
code: apiFilterItem.code,
items: [
//这里有一个特殊的情况,接口返回的分类数据中,没有返回有默认项的值
//如果有需要,客户端须自行按原型添加一个默认项
if (groupType.clientDefaultName case String defaultName
when defaultName.trim().isNotEmpty)
FilterItem(
name: defaultName,
value: '',
isSelected: true,
isDefault: true,
isAll: true,
),
...apiFilterItem.list
.where((itemName) => itemName.trim().isNotEmpty)
.map((itemName) => FilterItem(
name: itemName,
value: itemName,
))
.toList(),
],
);
debug 没问题,release 神奇的出现了
神奇的字段 name:null - {name: null, value: , isSelected: true, isDefault: true, isAll: true}
if (groupType.clientDefaultName case String defaultName when defaultName.trim().isNotEmpty) 完全起不到预期作用
改成
String get clientDefaultName => switch (this) {
schoolProvince => '全国',
schoolFeature => '不限',
schoolOwnership => '',
schoolLevel => '',
schoolType => '不限',
examType => '不限',
admissionType => '不限',
region => '',
category => '',
shortlistRatio => '不限',
assessmentMethod => '不限',
};