Flutter中ListView无法显示Task对象description属性问题求助
问题解决:Instance member 'description' can't be accessed using static access
错误原因
你写的Task.description是试图通过Task类直接访问它的实例属性description,但description是每个Task对象的专属成员,必须通过具体的Task实例才能调用,不能用类名直接访问——这就是报错的核心原因。
修正后的代码
以下是修复后的完整TaskCard类:
import 'package:task_management/data/tasks.dart'; class TaskCard extends StatelessWidget { final Task task; const TaskCard(this.task, {Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: Container( padding: const EdgeInsets.fromLTRB(8, 8, 8, 8), height: 290, width: double.maxFinite, child: Card( shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(15.0), ), shadowColor: Colors.black, elevation: 15, child: ClipPath( clipper: ShapeBorderClipper( shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(30), ), ), child: ListView.builder( itemCount: taskList.length, itemBuilder: ((context, index) { // 获取当前索引对应的Task实例 final currentTask = taskList[index]; return ListTile( leading: CircleAvatar( child: Text(currentTask.description), ), title: Text(currentTask.description), ); }), ), ), ), ), ), ); } }
关键修正点
- 移除了错误的
static String desc = Task.description;:这个语句试图用类访问实例成员,本身就不合法,且未被使用。 - 在ListView的
itemBuilder中,先通过taskList[index]拿到当前位置的Task实例,再用currentTask.description访问属性——这才是访问实例成员的正确方式。 - 额外说明:你的TaskCard接收了一个
task参数,但代码全程使用全局taskList,如果该参数无实际用途可以直接删除;若需展示单条任务卡片,可调整逻辑使用该参数构建UI。
内容的提问来源于stack exchange,提问作者user20905878
相关产品推荐
相关产品推荐

