【发布时间】:2020-06-11 22:57:42
【问题描述】:
我有一个状态模型,其中包含对象集合,其中也包含对象集合(想想待办事项列表的集合):
class StateModel extends ChangeNotifier {
List<TodoList> todoLists;
}
简化的 TodoList 类如下所示:
class TodoList {
int id;
List<Item> items;
}
class Item {
int id;
String name;
bool status; // true is done, false is not done
}
现在我的视图之一是我的待办事项列表的 ListView(我只显示名称),那是东部。但我想要一个待办事项列表详细视图(显示单个待办事项列表的数据),我想在其中将待办事项标记为已完成(即将它们的状态设置为 true)。我该怎么做?我可以在 StateModel 中有一个方法,它可以通过 id 找到一个 TodoList 对象,然后将项目标记为已完成。这可能看起来像这样:
class StateModel extends ChangeNotifier {
// (...)
void markItemAsDone(listId, itemId) {
// find todo list in StateModel
// find item in given list
// mark it as done
// notifyListeners()
}
}
但这似乎是错误的。我想要的是一种获取 TodoList 对象视图模型并使用其方法的方法,而不是 StateModel 方法。我应该如何处理这个?我可以有另一个视图模型(TodoListState),并且在 StateModel 中有一个 TodoListState 对象的集合吗?这是 ProxyProvider 的用例吗?
我希望我的问题很清楚,如果需要更多解释,请告诉我。
【问题讨论】: