【问题标题】:Changing Model & notifyListeners() without Provider.of()在没有 Provider.of() 的情况下更改模型和 notifyListeners()
【发布时间】:2019-11-21 14:10:56
【问题描述】:

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 2019-11-09
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    相关资源
    最近更新 更多