我去年写了一个应用程序,需要在多个屏幕上更新一个模型,所以我使用了provider和changeNotifier。
class SurveyProvider with ChangeNotifier, DiagnosticableTreeMixin{
String name = "";
String postCode= "";
void addSurvey(Survey survey){
this.name = survey.name;
this.postCode = survey.postCode;
notifyListeners();
}
这个提供程序是为下面的数据模型准备的,为了简单起见,我把它减少到只有两个变量。
class Survey{
final String name;
final String postCode;
}
我把模型的每个变量都实现为提供者内部的变量。我应该像这样在提供者内部实现整个模型吗?
class SurveyProvider with ChangeNotifier, DiagnosticableTreeMixin{
Survey survey;
void addSurvey(Survey survey){
this.survey = survey;
notifyListeners();
}
我不确定哪种方法是正确的,但我有一种感觉,我做这件事的方法是错误的。
1条答案
按热度按时间jogvjijk1#
没有一种普遍正确的国家管理方法,但我要说,你所做的并没有错。
当对象和提供程序之间有一对一的链接时,第一种方法更好。
但是,如果您需要为复杂和不同的实体提供一个提供程序,则第二个选项更为可靠,因为它允许您将对象逻辑与其提供程序逻辑分离。
最佳解决方案取决于项目的大小和复杂程度。