Flutter报错:类型'TaskData'未定义'size'/'length' getter,求修复方案
修复Flutter Provider中TaskData的size/length报错问题
错误原因
TaskData类本身未定义size或length属性,直接通过data.size/data.length访问自然会触发报错。从代码里的data.tasks[index]可以看出,TaskData内部存在一个名为tasks的列表属性,存储着所有任务数据。
两种简单修复方法
方法一(最快捷):直接使用
tasks列表的length属性替换原代码中的size
将代码里的:itemCount: data.size,修改为:
itemCount: data.tasks.length,方法二(封装属性,更规范):在TaskData类中添加对应的getter方法
打开task_data.dart文件,在TaskData类中新增getter:class TaskData extends ChangeNotifier { // 原有tasks列表定义 List<Task> tasks = []; // 添加getter,可选其中一个或都加 int get size => tasks.length; // 或者 int get length => tasks.length; }这样原代码里的
data.size或data.length就能正常调用。
推荐方案
优先选择方法一,无需修改模型类代码,直接利用现有属性即可解决问题,操作最简单。
内容的提问来源于stack exchange,提问作者user8016440
相关产品推荐
相关产品推荐

