flutter provider changenotifierprovider 问题

Mat*_*123 7 dart flutter flutter-provider

我正在查看 flutter 网站上的以下代码:

void main() {
  runApp(
    MultiProvider(
      providers: [
        ChangeNotifierProvider(create: (context) => CartModel()),
        Provider(create: (context) => SomeOtherClass()),
      ],
      child: MyApp(),
    ),
  );
}

Run Code Online (Sandbox Code Playgroud)

我想知道,Provider 和 ChangeNotifierProvider 有什么区别?

谢谢!

Nas*_*sky 10

提供程序包文档(一路向下):

提供者:提供者的最基本形式。它接受一个值并公开它,无论值是什么。

ListenableProvider:Listenable 对象的特定提供者。ListenableProvider 将侦听对象并要求依赖它的小部件在调用侦听器时重建。

ChangeNotifierProvider:ChangeNotifier 的 ListenableProvider 规范。它会在需要时自动调用 ChangeNotifier.dispose。

因此,ChangeNotifierProvider是一种特定类型,Provider它会在该对象更新时侦听该对象并重建其依赖的小部件。此外,它会dispose在需要时自动调用该方法。

Provider是通用的供应商,没有任何更复杂的功能,是非常像一个优化的继承的Widget


Vin*_*ino 7

提供者

提供者是最基本的提供者小部件类型。您可以使用它为小部件树中的任何位置提供值(通常是数据模型对象)。每当值更改时,它都不会重建小部件树。它只是将模型传递给小部件树中的后代小部件。

ChangeNotifierProvider

ChangeNotifierProvider,是ListenableProvidermade for 的一个子类ChangeNotifier。它监听模型对象的变化。每当ChangeNotifier.notifyListeners被调用时,它都会重建依赖小部件。