getter 没有为地图的 class 'Map<>' 列表 getter 定义
The getter isn't defined for the class 'Map<>' List getter for a Map
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;
}
}
您好,我有一个class如上图。我有一张地图,我想从中创建一个列表。所以我创建了一个 getter 但它不起作用,因为当我尝试 print(courses.list);
我得到一个错误
"The getter 'list' isn't defined for the class 'Map<Course, CourseData>'.
"
您缺少初始化列表。
更改以下行:
List<CourseData> list;
与以下一个:
List<CourseData> list = [];
错误是因为您很可能试图直接从 class 而不是从 class 的实例获取列表,因此使 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 'CourseData{courseName: $courseName, schoolCourse: $schoolCourse}';
}
}
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;
}
}
您好,我有一个class如上图。我有一张地图,我想从中创建一个列表。所以我创建了一个 getter 但它不起作用,因为当我尝试 print(courses.list);
我得到一个错误
"The getter 'list' isn't defined for the class 'Map<Course, CourseData>'.
"
您缺少初始化列表。
更改以下行:
List<CourseData> list;
与以下一个:
List<CourseData> list = [];
错误是因为您很可能试图直接从 class 而不是从 class 的实例获取列表,因此使 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 'CourseData{courseName: $courseName, schoolCourse: $schoolCourse}';
}
}