我想知道是否可以通过使用模型实例来更改模型和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();
可以吗?
答案 0 :(得分:0)
这取决于您的Models
的实例。 Provider.of
方法是帮助您的子小部件与父小部件的Models
进行通信的方式的语法糖。因此,如果您有另一种方法(出于技术原因,我不知道),则可以。但是,Provider.of
是迄今为止最有用的方法之一。