我正在使用提供程序包进行状态管理的待办事项列表应用程序。在任务创建屏幕中,我有类似的小部件
- 任务名称
- 待办事项的类型
- 任务颜色选择器
- 日期和时间
- 保存按钮
任务模型
class Task with ChangeNotifier {
String _name;
String _type;
Color _color;
String get name => _name;
set name(String name) {
_name = name;
notifyListeners();
}
Color get color => _color;
set color(Color color) {
_color = color;
notifyListeners();
}
String get type => _type;
set type(String type) {
_type = type;
notifyListeners();
}
}
我正在这样ChangeNotificationprovider
使用
ChangeNotifierProvider<Task>.value(
value: Task(),
child: Consumer<Task>(
builder: (context, task, _) {
return Scaffold(...
...
NameWidget(),
ColorWidget(),
TypeWidget(),
.....
因此,每个小部件都将更改任务模型的各个字段,但我面临的问题是,每当小部件更新任务模型的字段时,所有小部件Consumer
都在更新,就像每当我更新color
字段时,应用程序将刷新不是唯一的颜色字段但所有其他领域。是否有任何其他方式来设计此提供程序架构,例如仅向特定字段侦听器发送通知?
这是我尝试过的。
我没有尝试将每个字段创建为单独的类和Task
ChangeNotifier 。ChangeNotifier
比如name
字段变成这样
class Task {
Name _name;
}
class Name with ChangeNotifier {
String _name;
}
但这似乎是太多的样板代码。