Удалить дубликат виджета

#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 , чтобы избежать повторяющихся проблем!