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,提问作者최수형
相关产品推荐
相关产品推荐

