微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

提供程序与ValueNotifier波动

如何解决提供程序与ValueNotifier波动

有人可以解释使用Provider软件包和使用ValueNofifier间的区别吗?

现在,我在我的应用中使用ValueNotifierValueListenableBuilder,我发现此方法与使用提供商和消费者之间有很多相似之处。两者都有侦听器,可以使用提供的最新数据重建小部件,并且都使用ChangeNotifier和notifyListeners。

那有什么区别?什么时候应该选择其中一个而不是另一个

谢谢

解决方法

就我在使用应用程序中的两种功能方面的经验而言,主要的区别是

Provider可以在应用程序的任何部分进行更改,就像使用notifyListener()的任何地方一样,并且可以在应用程序中的任何位置进行访问。但是,使用全局ValueNotifier 可能会导致错误,因此不建议这样做。从技术上讲,当代码变大时,您无法对错误跟踪进行太多控制。

Provider(
  create: (_) => MyModel(),child: ...
)

其他主要区别:

Provider使您能够使用多个Providers ,并且只能存储在单个Provider数组中,但是在ValueNotifier中,您受到很大限制一次使用一个值。要使用多个ValueNotifier,必须创建多个ValueNotifier,然后每次都将其丢弃。

MultiProvider(
  providers: [
    Provider<Something>(create: (_) => Something()),Provider<SomethingElse>(create: (_) => SomethingElse()),Provider<AnotherThing>(create: (_) => AnotherThing()),],child: someWidget,)

基本上,这是将业务逻辑与常规应用程序逻辑分开的一种好方法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。