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

Flutter中type is not a subtype错误:日历添加事件功能失效

问题定位与解决方案

你的报错「type is not a subtype of type」核心原因是类型不匹配:

events的类型为Map<DateTime, List<Event>>,要求字典的每个值必须是List<Event>类型,但你在_addCalendar方法里直接将单个Event实例强制转为List<Event>:

events[DateTime.now()] = Event('123') as List<Event>;

单个Event对象与List<Event>属于完全不同的类型,强制转换必然触发类型错误。

基础修正代码

将单个Event包装成列表后再赋值:

void _addCalendar() {
  events[DateTime.now()] = [Event('123')];
}

进阶优化(避免覆盖已有事件)

如果需要为已有事件的日期新增事件而非覆盖原有列表,可先判断日期是否存在:

void _addCalendar() {
  final currentDate = DateTime.now();
  if (events.containsKey(currentDate)) {
    events[currentDate]!.add(Event('123'));
  } else {
    events[currentDate] = [Event('123')];
  }
}

内容的提问来源于stack exchange,提问作者최수형

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:30:47