如何解决提供程序与ValueNotifier波动
有人可以解释使用Provider软件包和使用ValueNofifier之间的区别吗?
现在,我在我的应用中使用ValueNotifier和ValueListenableBuilder,我发现此方法与使用提供商和消费者之间有很多相似之处。两者都有侦听器,可以使用提供的最新数据重建小部件,并且都使用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 举报,一经查实,本站将立刻删除。