我正在try 在Ffltter应用程序中的TABLE_CALENLER小部件上填充事件,但在使用TABLE_CALLER小部件的Events和eventsLoader:属性时遇到了问题.
我已经计算出,如果我使用2 for循环,我可以填充类型事件的列表,List,并将其传递回eventsLoader,但我收到了一个我不理解的错误.
以下是我使用的代码:
eventLoader: (day) {
return _getEventsForDay(day, events); <<< ERROR HERE
},
List<Events>? _getEventsForDay(DateTime day, [List<Events>? events]) {
final int today = day.day;
final int nbrEvents = events!.length;
for (Events allEvent in events) {
if (day.year == allEvent.eventDate!.year &&
day.month == allEvent.eventDate!.month &&
day.day == allEvent.eventDate!.day) {
// fill this list with all the events associated
//with the given day and pass the list back
late final List<Events> listDayEvents = [];
for (Events dayEvents in events) {
if (day.year == allEvent.eventDate!.year &&
day.month == allEvent.eventDate!.month &&
day.day == allEvent.eventDate!.day) {
listDayEvents.add(allEvent);
}
}
return listDayEvents;
}
List<Events> emptyList = [];
return emptyList;
}
}
我在EventsLoader:属性上收到的错误如下:
The return type 'List<Events>?' isn't a 'List<_>', as required by the closure's context.dartreturn_of_invalid_type_from_closure
List<Events>? _getEventsForDay(DateTime day, [List<Events>? events])
Type: List<Events>? Function(DateTime, [List<Events>?])
package:deal_diligence/screens/appointment_calendar.dart
我不理解这个错误消息,因为我返回的是List类型.
这是Events类.我从Firebase集合中获取事件,并且每个事件都有Events类中的数据元素,那么我传递的数据类型是否错误?
class Events {
String? id;
String? eventName;
DateTime? eventStartTime;
String? eventDuration;
DateTime? eventDate;
String? eventDescription;
String? userId;
String? companyId;
这里是table_calendar widget的文档链接
我做错了什么?请帮帮忙. 谢谢