flutter - 在没有 Provider.of() 的情况下更改模型和 notifyListeners()
问题描述
我想知道是否可以通过使用模型实例来更改模型和 notifyListeners()。
这是示例。
UserModel() {
// ... some code here ...
updateName() {
// ... some code here...
notifiyListeners();
}
}
UserModel userModel = UserModel();
// ...
Widget build(...) {
return ChangeNotifierProvider {
builder: (context) => userModel,
child: MaterialApp(...)
}
}
// ...
SomeWidget build(BuildContext context) {
RaisedButton( child: ..., onPressed: () {
userModel.updateName();
}
}
如果您看到上面的代码,我没有使用Provider.of<UserModel>(context).updateName()
.
我只是访问 userModel 来更新模型和 notifyListeners();
这个可以吗?
解决方案
这取决于您的Models
. Provider.of
方法是帮助您的子小部件与Models
父小部件通信的方式的语法糖。因此,如果您有其他方法(出于技术原因,我不知道),那没关系。但是,Provider.of
成为迄今为止最有用的方法之一。
推荐阅读
- sql-server - SQL BETWEEN Time 不显示结果
- r - 用条形图叠加条形图
- r - 在 R 中的 data.frame 中查找仅出现在一个集群中的变量
- c++ - 将文本文件读入二维数组,但数组开始输出超出数组 [39][ ] 的任何内容的乱码
- python - 如果找不到我要查找的元素,如何处理 BeautifulSoup 中的异常?
- nlp - 使用 en_trf_bertbaseuncased_lg 模型训练 NER SpaCy
- utf-8 - 字母 x 在本网站上未被识别为字母
- git - 在 .gitconfig 中注释行而不是取消设置
- c++ - 获取有关使用未初始化内存的错误代码
- mysql - 没有列顺序的唯一键约束