Я пытаюсь создать приложение календаря, используя карусель календаря флаттера. Что мне нужно сделать, так это показать события, назначенные месяцу, когда пользователь пролистывает месяцы.
checkCurrentMonth() {
selectedMonth = DateTime.parse(_targetDateTime.toString()).month.toInt();
selectedYear = DateTime.parse(_targetDateTime.toString()).year.toInt();
_markedDateMap.events.forEach((key, value) {
// print(_markedDateMap.events);
print(DateTime.parse(key.toString()).month.toInt());
if (selectedMonth == DateTime.parse(key.toString()).month.toInt() &&
selectedYear == DateTime.parse(key.toString()).year.toInt()) {
// print(_markedDateMap.events[key]);
_selectedHolidays.add(_markedDateMap.events[key]);
}
});
// for (var item in _selectedHolidays) {
// print("000000000000000 $item");
// gatheredEvents.add(GatherEvents.fromJson(item));
// }
print(_selectedHolidays[0].getTitle());
print(_markedDateMap.events.length);
}
Я получаю следующую ошибку.
Class 'List<Event>' has no instance getter 'getTitle'.
Receiver: Instance(length:1) of '_GrowableList'
Tried calling: getTitle
вот моя _markedDateMap
EventList<Event> _markedDateMap = new EventList<Event>(
events: {
new DateTime(2020, 12, 29): [
new Event(
date: new DateTime(2020, 12, 29),
title: 'Poya Day',
icon: _poyaeventIcon(DateTime(2020, 12, 29).day.toString()),
dot: Container(
margin: EdgeInsets.symmetric(horizontal: 1.0),
color: Colors.red,
height: 5.0,
width: 5.0,
),
),
],
new DateTime(2021, 01, 14): [
new Event(
date: new DateTime(2021, 01, 14),
title: 'Tamil Thai Pongal Day',
icon: _otheralleventIcon(DateTime(2021, 01, 14).day.toString()),
dot: Container(
margin: EdgeInsets.symmetric(horizontal: 1.0),
color: Colors.red,
height: 5.0,
width: 5.0,
),
),
],
},
);
Пожалуйста, помогите мне с этим.
Привет @dm_tr я отредактировал свой вопрос
Проверьте мой ответ
Помимо нативных встроенных методов, вы не можете вызывать другие методы для List
. На самом деле вы вызываете метод getTitle
в списке Event
. Если вы хотите увидеть заголовки всех событий вашего списка, вы должны либо использовать цикл, либо получить определенный индекс.
for (var event in _selectedHolidays[0]) print(event.getTitle());
// or
print(_selectedHolidays[0].first.getTitle());
Где твоя
_markerdDateMap
декларация?