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

Flutter运行出现List<Todo>与List<Todo>类型不匹配报错如何解决

问题根因

该报错是Dart类型系统的路径识别机制导致的:即使两个类的代码完全一致,只要导入路径的解析结果不同,就会被判定为完全独立的类型。你给出的报错信息已经明确标注了冲突来源:两个同名Todo类分别来自package:todoapp/view/main_page.dart和package:todoapp/dto/todo.dart。
你把Todo类移动到Widget所在文件后运行正常,就是因为同文件内不需要跨文件导入,不存在路径识别差异,类型判定自然一致。

触发原因

通常有两种情况会导致这个问题:

  • 你在main_page.dart中不小心重复定义了同名Todo类,和dto/todo.dart中的类产生了冲突
  • 不同文件导入Todo类时混用了相对路径和包绝对路径,Dart会将两种路径导入的同一类识别为不同类型
解决方案
  1. 首先排查main_page.dart的代码,删除重复定义的Todo类,全局只保留dto/todo.dart中的唯一Todo类定义
  2. 统一所有用到Todo类的文件的导入规则,全部使用包绝对路径导入,不要混用相对路径,示例写法:
import 'package:todoapp/dto/todo.dart';
  1. 修改完成后执行flutter clean清理编译缓存,再重新运行项目即可解决问题

内容的提问来源于stack exchange,提问作者Vasiliy Bohdanets

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:15:04