flutter_bloc / provider RepositoryProvider与提供者

代码精神

我是新手,现在正在研究DI。
我正在使用flutter_blocprovider软件包。

flutter_bloc附带一RepositoryProvider,问题IM问自己现在是什么之探源来Providerprovider

RepositoryProvider存储库有什么特别之处吗?还是只是命名策略?

雷米·罗素(Remi Rousselet)
  • RepositoryProvider不处理更新。您无法在运行时“更改”存储库。
  • 提供程序确实处理更新(使用Provider.value)。这意味着,如果您在运行时更改对象,则将重建使用该对象的小部件。

这种差异对生命周期的影响如下initState

使用Provider,您必须显式监听对象更改:

void initState() {
  super.initState();
  // will fail if listen: false is not specified
  Provider.of<MyObject>(context, listen: false);
}

使用RepositoryProvider,您不必关心:

void initState() {
  super.initState();
  RepositoryProvider.of<MyObject>(context);
}

因此,这只是详细程度上的差异。

实际上,从Provider版本4.1.0开始,您可以使用context.read<MyObject>()代替Provider.of<MyObject>(context, listen: false)–来减少冗长的差异

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Flutter&provider:如何通过提供者的int值更改文本?

Flutter BLoC 提供者查询

Flutter - 提供者

Flutter提供者使用

Flutter:从其他提供者访问提供者

在flutter_bloc中提供后,无法立即使用肘

Flutter提供者不响应notifyListeners

找不到正确的提供者-Flutter

找不到提供者 - Flutter

我想使用 pull 刷新从 Riverpod 模型提供者构建的 Listview,该提供者从 Future Provider 获取数据

推送新路线时,flutter_bloc库中的存储库提供程序不提供存储库

如何使Flutter提供程序从工厂提供者notifyListeners()?

Flutter Bloc对提供者状态管理的“正在进行中”

Flutter BLOC和提供者如何一起注册

控制台日志“提供者id_provider不是有效的”

Android:无法找到com.facebook.wakizashi.provider.PlatformProvider的提供者信息

无法获取提供者com.google.firebase.provider.FirebaseInitProvider

Angular2 + Typescript + jspm:没有Http的提供者(App-> Provider-> Http)

Flutter-Riverpod - 如何组合提供者以过滤流

Flutter提供者状态管理,注销概念

Flutter-找不到正确的提供者

如何在Flutter中正确重用提供者

Flutter 提供者和小部件生命周期

Flutter中提供者的单元测试

Flutter cubit blocprovider无法找到正确的提供者

Flutter提供者未更新变量值

如何在ChangeNotifier提供者Flutter中关闭函数

Flutter:找不到FutureBuilder上方的提供者

找不到正确的提供者-Flutter ChangeNotificationProvider