#list #dart #flutter
#Список #dart #трепетание
Вопрос:
Моя функция types () должна возвращать уникальный список ExpansionTiles. При комбинировании дротиков.toSet ().ToList () действительно эффективен при удалении дубликатов в списке, и я пытаюсь сделать то же самое здесь, но я все еще отображаю дубликаты.
На картинке я не хочу, чтобы NISSAN отображался дважды, только один раз как одна категория.
types() {
return snapshot.data.documents.map((doc) {
if(doc['car']['registryNumber'] != null amp;amp; doc['car']['category'] ==
'car') {
return ExpansionTile(
title: new Row(
children: <Widget>[
new Text(
doc['car']['type'].split(' ')[0],
style: new TextStyle(
fontSize: 15.0
),
)
],
),
children: <Widget>[
],
);
} else {
return new Text('');
}
}).toSet().toList();
}
Комментарии:
1. вы делаете toSet() в списке элементов расширения, но вы должны сделать это в списке названий автомобилей
2. Понял! перед возвратом виджета я применил toSet() к списку названий автомобилей. Теперь все хорошо!
Ответ №1:
Не забудьте добавить уникальный key:
в ExpansionTile
, чтобы избежать повторяющихся проблем!