You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数据库事件未显示,如何在代码中使用loadPreviousEvents返回的mySelectedEvents?

解决方法

要在_listOfDayEvents方法中使用loadPreviousEvents返回的数据,需要先处理异步加载逻辑,并将数据存储到类的成员变量中,步骤如下:

1. 声明成员变量存储事件数据

在你的State类(或对应业务类)中添加成员变量,用于保存加载完成后的分组事件:

Map<String, List<Map>>? _mySelectedEvents;

2. 异步加载并更新状态

在合适的时机(比如StatefulWidget的initState方法)调用loadPreviousEvents,获取数据后通过setState更新UI状态:

@override
void initState() {
  super.initState();
  _fetchEvents();
}

Future<void> _fetchEvents() async {
  final events = await loadPreviousEvents();
  setState(() {
    _mySelectedEvents = events;
  });
}

3. 修改_listOfDayEvents方法使用数据

更新_listOfDayEvents,使用成员变量并处理数据未加载完成的情况:

List _listOfDayEvents(DateTime dateTime) {
  final dateKey = DateFormat('yyyy-MM-dd').format(dateTime);
  // 数据未加载或无对应日期事件时返回空列表
  return _mySelectedEvents?[dateKey] ?? [];
}

关键注意事项

  • 确保loadPreviousEvents中用作key的item['date']格式,和_listOfDayEvents里DateFormat('yyyy-MM-dd')生成的字符串完全一致,否则会出现找不到对应事件的情况。
  • 因为数据是异步加载的,初始阶段_mySelectedEvents为null,此时_listOfDayEvents会返回空列表,直到数据加载完成并触发状态更新。

内容的提问来源于stack exchange,提问作者Zana Souleymane Coulibaly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 23:05:19