Это функция группировки событий по дням. Он начинается с List<EventK>
, который содержит все элементы для сортировки. В результате получается Map<DateTime, List<EventK>>
.
Проблема с currentDayEvents
. Как только он назначен на _events
, и значение currentDayEvents
изменяется на разных итерациях, значение _events
также изменяется. Как я могу получить постоянное значение _events
вне функции?
void _getEvents()async{
setState(() {
isLoading = true;
});
List<EventK> events = await EventApi.getPersonalEvents();
List<EventK> currentDayEvents = [];
DateTime currentDay;
for(int i = 0; i<events.length-1; i++){
currentDay = events[i].startTime;
currentDayEvents.add(events[i]);
for(int j=i+1; j<events.length; j++){
DateTime analyzedDay = events[j].startTime;
if(currentDay.year == analyzedDay.year &&
currentDay.month == analyzedDay.month &&
currentDay.day == analyzedDay.day
){
currentDayEvents.add(events[j]);
events.removeAt(j);
j -= 1;
}
}
_events.putIfAbsent(currentDay, ()=>currentDayEvents);
currentDayEvents.clear();
}
setState(() {
isLoading = false;
});
}