Ошибка библиотеки календаря таблицы флаттера «NoSuchMethodError:« Ключи »получателя вызваны с нулевым значением.» Untile data not get fech to calendar - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть 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,
                ),
              ),
            ),
          );
        },
      ),
    );
  }

enter image description here

После исчезновения ошибки загрузки данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...