Dart出现Instance member 'task' can't be accessed using static access报错求助
报错原因及解决方案
错误根源
Dart中类名.成员名的写法仅用于访问类的静态(static)成员,你定义的Task类中的task字段属于实例成员,必须通过Task类的实例对象才能访问。
你当前代码里直接写Task.task相当于把task当成了Task类的静态字段调用,和定义不符,所以触发该报错。
修复方案
你在TaskCard类中已经声明了类型为Task的实例属性task,它就是你创建TaskCard时传入的Task实例,直接调用这个实例的task字段即可:
把报错行的
Task.task
修改为
task.task // 也可以补全this,和下面写法效果完全一致 // this.task.task
修正后的完整代码片段参考
class Task { String task; Task(this.task); } class TaskCard extends StatelessWidget { final Task task; final Function() done; TaskCard({required this.task, required this.done}); @override Widget build(BuildContext context) { return Card( margin: EdgeInsets.fromLTRB(16.0, 16.0, 16.0, 0.0), child: Padding( padding: const EdgeInsets.all(12.0), child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( task.task, // 已修复 // 你后续其余代码 ), ], ), ), ); } }
内容的提问来源于stack exchange,提问作者meltdown_ultra
相关产品推荐
相关产品推荐

