没有为类 'Map<>' 定义 getter 为 Map 列出 getter
Posted
技术标签:
【中文标题】没有为类 \'Map<>\' 定义 getter 为 Map 列出 getter【英文标题】:The getter isn't defined for the class 'Map<>' List getter for a Map没有为类 'Map<>' 定义 getter 为 Map 列出 getter 【发布时间】:2020-08-08 22:52:50 【问题描述】: import 'package:meta/meta.dart';
enum Course
math,
english,
class CourseData
const CourseData(@required this.courseName, @required this.schoolCourse);
final String courseName;
final bool schoolCourse;
static const Map<Course, CourseData> allCourses =
Course.math: CourseData(courseName: 'math', schoolCourse: true),
Course.english: CourseData(courseName: 'english', schoolCourse: true),
;
List<CourseData> get list
List<CourseData> list;
allCourses.forEach((k, v) => list.add(v));
return list;
你好,我有一个如上所示的课程。我有一张地图,我想从中制作一个列表。所以我创建了一个吸气剂,但它不起作用,因为当我尝试 print(courses.list);
时出现错误
“The getter 'list' isn't defined for the class 'Map<Course, CourseData>'.
”
【问题讨论】:
你能在打印列表的地方显示代码吗 【参考方案1】:您缺少初始化列表。
更改以下行:
List<CourseData> list;
以下:
List<CourseData> list = [];
【讨论】:
【参考方案2】:错误是因为您很可能试图直接从类而不是从类的实例中获取列表,因此将 getter 设为静态将解决您的问题(最好是静态的,因为它已经只能访问静态值)
另外,你有一个错误是你忘记初始化列表
enum Course
math,
english,
class CourseData
const CourseData(@required this.courseName, @required this.schoolCourse);
final String courseName;
final bool schoolCourse;
static const Map<Course, CourseData> allCourses =
Course.math: CourseData(courseName: 'math', schoolCourse: true),
Course.english: CourseData(courseName: 'english', schoolCourse: true),
;
static List<CourseData> get list
List<CourseData> list = List<CourseData>();
allCourses.forEach((k, v) => list.add(v));
return list;
@override
String toString()
return 'CourseDatacourseName: $courseName, schoolCourse: $schoolCourse';
【讨论】:
以上是关于没有为类 'Map<>' 定义 getter 为 Map 列出 getter的主要内容,如果未能解决你的问题,请参考以下文章
C ++ typedef函数定义为类成员,以后用于函数指针?
没有为类型 'QuerySnapshot<Map<String, dynamic>>' 定义 getter 'documents'