【问题标题】:Table_calendar not show event indicator and event when data loadTable_calendar 在数据加载时不显示事件指示器和事件
【发布时间】:2022-11-02 21:23:43
【问题描述】:

我在初始化状态下加载了数据,但事件指示器没有显示,当我点击其他日期时,bak 数据消失了。

Here is my code file

【问题讨论】:

    标签: flutter calendar flutter-layout flutter-dependencies


    【解决方案1】:

    由于initState 不是async,您通常不会向其中添加异步执行的代码(如fetch 的数据)。相反,我建议使用FutureBuilder(或StreamBuilder.periodic,如果您想继续定期获取数据)。

    说你有这个功能

    Future<List<Event>> fetchEvents() async {
      ...
      return events;
    }
    

    它从您的本地或在线数据库中获取事件并将它们作为列表返回。然后,您可以将您的小部件包装在 FutureBuilder 中:

    FutureBuilder<List<Event>>(
      future: fetchEvents,
      builder: (BuildContext context, AsyncSnapshot<List<Event>> snapshot) {
        List<Event> events = snapshot.data ?? [];
        return MyAwesomeCalendarWidget(events: events);
      }
    );
    

    这样,Widget 将首先使用空的List(尚未获取事件)构建,向您显示一个空日历,一旦获取数据,它将相应地重建。在这种情况下,您将不再需要使用 StatefulWidget

    【讨论】:

    • 事件列表是日期明智的,所以这不起作用如果你有想法,请用我的代码试试
    【解决方案2】:
    eventLoader: (day) {
      for (var i = 0; i < listtasks.length; i++) {
        if (day == listtasks[i].date) {
             return [listtasks[i]];
         }
                }
                return [];
              },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-04
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 2018-05-27
      相关资源
      最近更新 更多