不使用Provider.of()更改Model和notifyListeners()

时间:2019-11-21 14:10:56

标签: flutter

我想知道是否可以通过使用模型实例来更改模型和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();

可以吗?

1 个答案:

答案 0 :(得分:0)

这取决于您的Models的实例。 Provider.of方法是帮助您的子小部件与父小部件的Models进行通信的方式的语法糖。因此,如果您有另一种方法(出于技术原因,我不知道),则可以。但是,Provider.of是迄今为止最有用的方法之一。