1

我有一个与视图模型有关的问题。我需要访问这个 viewModel 的方法:

class TheacerViewModel{
  Teacher _teacherX;

  TeacherViewModel(Teacher teacherX): _teacherX = teacherX;

  String get name{
    return _teacherX.name;
  }
  
  String get surname{
    return _teacherX.surname;
  }
  
  int get age{
    return _teacherX.age;
  }    
}

进入这个viewModel:

class CourseViewModel{
  Course _courseX;

  CourseViewModel(Course courseX): _courseX = courseX;

  String get subject{
    return _courseX.subject;
  }

    /*
    my solution (not working)
  Teacher get teacher{
    return _courseX.theacer;
  }
  */
}

我的解决方案不起作用。有可能做这件事吗?

我已经创建了教师和课程模型。

谢谢。

对于@towhid 评论

现在我必须更新这部分代码(可能只是最后一行)并将“老师:老师”添加到 CourseViewModel(...),但是如何?因为 course.map 不允许我添加 2 个参数。

List<CourseViewModel> coursesL = List<CourseViewModel>();

  void courses() async {
    List<Course> courses = await WebService().fetchCourses();
    notifyListeners();
    this.coursesL = courses.map((courseX) => CourseViewModel(courseX: courseX)).toList();
4

1 回答 1

0

一种理想的方法是首先创建独立的 ViewModel,然后将该实例传递给依赖的 ViewModels 构造函数以使用其方法和属性。这样,您可以避免创建任何不必要的实例。

class CourseViewModel{
  Course _courseX;
  Teacher _teacher;

  CourseViewModel(Course courseX, Teacher teacher): _courseX = courseX, _teacher = teacher;

  String get subject{
    return _courseX.subject;
  }

  Teacher get teacher => _teacher;

}
于 2021-06-13T13:11:06.067 回答