首页 > 解决方案 > 在没有 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();

这个可以吗?

标签: flutter

解决方案


这取决于您的Models. Provider.of方法是帮助您的子小部件与Models父小部件通信的方式的语法糖。因此,如果您有其他方法(出于技术原因,我不知道),那没关系。但是,Provider.of成为迄今为止最有用的方法之一。


推荐阅读