【问题标题】: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&lt;Course, CourseData&gt;'.

【问题讨论】:

  • 你能在打印列表的地方显示代码吗

标签: list dictionary flutter dart getter


【解决方案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 'CourseData{courseName: $courseName, schoolCourse: $schoolCourse}';
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-11-19
      • 2021-11-22
      • 1970-01-01
      • 2021-06-08
      • 2021-04-28
      • 1970-01-01
      • 2021-07-27
      • 2020-09-02
      • 2021-07-23
      相关资源
      最近更新 更多