#flutter #dart #listview #duplicates
Вопрос:
У меня есть представление, в котором я показываю все элементы из списка.Когда я снова вхожу в этот режим, все содержимое дублируется.Это исходный код моего промежуточного программного обеспечения, в котором я получаю содержимое из базы данных:
if (action is GetPersonalExpAction) { dataService.getEntity("experience/list").then((reponse) =gt; decodeBody(reponse)).then((result) { Listlt;ItemExperiencegt; experience = []; for (var element in result) { experience.add(ItemExperience( id: element['id'], job: element['job'], company: element['company'], date_from: element['date_from'], date_to: element['date_to'], description: element['description'], )); } store.state.personalAreaState.experience!.addAll(experience); next(action); }); }
Интересно, как мне это остановить?
Комментарии:
1. Но я хочу называть это больше раз, потому что я могу удалять элементы из списка, добавлять и редактировать.
2. Я просто хочу добавить какой-нибудь метод, который не добавляет существующие.
Ответ №1:
Если вам нужно вызвать этот метод несколько раз, вы должны очистить store.state.personalAreaState.experience
его, прежде чем добавлять данные базы данных. Как это:
if (action is GetPersonalExpAction) { dataService.getEntity("experience/list").then((reponse) =gt; decodeBody(reponse)).then((result) { Listlt;ItemExperiencegt; experience = []; for (var element in result) { experience.add(ItemExperience( id: element['id'], job: element['job'], company: element['company'], date_from: element['date_from'], date_to: element['date_to'], description: element['description'], )); } store.state.personalAreaState.experience!.clear(); //lt;-- clear list before add data store.state.personalAreaState.experience!.addAll(experience); next(action); }); }
Комментарии:
1. Делая это, список в первом месте иногда кажется пустым
2. когда появится пустой ответ, в базе данных есть данные? Я думаю, что это единственный случай, когда список был бы пустым