List 列表指定的值,在每次迭代时都会更改
这是一个按日期对事件进行分组的功能。它以一个包含所有要排序的元素的List 列表指定的值,在每次迭代时都会更改,list,flutter,dart,List,Flutter,Dart,这是一个按日期对事件进行分组的功能。它以一个包含所有要排序的元素的列表开始。结果是一个映射 问题在于currentDayEvents。一旦分配给\u events,并且currentDayEvents的值在不同的迭代中更改,\u events的值也会更改。如何在函数外部获取事件的永久值 void _getEvents()async{ setState(() { isLoading = true; }); List<EventK> events
列表开始。结果是一个映射
问题在于currentDayEvents
。一旦分配给\u events
,并且currentDayEvents
的值在不同的迭代中更改,\u 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;
});
}
void\u getEvents()异步{
设置状态(){
isLoading=true;
});
List events=wait EventApi.getPersonalEvents();
列出currentDayEvents=[];
日期时间当前日期;
for(int i=0;i在for循环中移动currentDayEvents
的声明,以便在每次迭代中重新初始化新对象。这样,您可以删除currentDayEvents.clear()
for(int i=0;i将currentDayEvents
的声明移动到for循环中,以便在每次迭代中重新初始化新对象。这样,您可以删除currentDayEvents.clear()
for(int i=0;i
for(int i = 0; i<events.length-1; i++){
currentDay = events[i].startTime;
var currentDayEvents = [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);
}