У меня есть http-вызов для получения событий из json и извлечения в библиотеку табличного календаря, но если данные не загружены, отображается ошибка
"NoSuchMethodError: вызваны" ключи "геттера null. Получатель: null Пробный вызов: ключи См. также: https://flutter "
HTTP-вызов
Future<Map<DateTime, List<Item>>> getTask() async {
Map<DateTime, List<Item>> mapFetch = {};
await Future.delayed(const Duration(seconds: 1), () {});
String link =
"https:LINK";
var res = await http
.get(Uri.encodeFull(link), headers: {"Accept": "application/json"});
if (res.statusCode == 200) {
Event event = eventFromJson(res.body);
for (int i = 0; i < event.items.length; i++) {
if (event.items[i].start.dateTime == null) {
mapFetch[event.items[i].start.date] = [event.items[i]];
} else {
mapFetch[event.items[i].start.dateTime] = [event.items[i]];
}
}
}
return mapFetch;
}
* Инициализация *
@override
void initState() {
isLoading = true;
final _selectedDay = DateTime.now();
_selectedEvents = [];
WidgetsBinding.instance.addPostFrameCallback((_) {
getTask().then((val) => setState(() {
_events = val;
// print('EVENNT $_events ');
}));
});
super.initState();
}
* Код библиотеки календаря *
Widget _buildCalendar() {
return TableCalendar(
locale: 'en_US',
events: _events,
onDaySelected: _onDaySelected,
initialCalendarFormat: CalendarFormat.month,
formatAnimation: FormatAnimation.slide,
startingDayOfWeek: StartingDayOfWeek.monday,
availableGestures: AvailableGestures.all,
availableCalendarFormats: const {
CalendarFormat.month: 'Month',
},
builders: CalendarBuilders(
selectedDayBuilder: (context, date, _) {
return Container(
decoration: new BoxDecoration(
color: Colors.white,
shape: BoxShape.rectangle,
borderRadius: BorderRadius.all(Radius.circular(8.0)),
),
margin: const EdgeInsets.all(4.0),
width: 100,
height: 100,
child: Center(
child: Text(
'${date.day}',
style: TextStyle(
fontSize: 16.0,
color: Colors.black,
),
),
),
);
},
),
);
}
После исчезновения ошибки загрузки данных