ChangeNotifierProvider&&ChangeNotifierProvider.value

ChangeNotifierProvider&&ChangeNotifierProvider.value

我无法理解 ChangeNotifierProvider 和 ChangeNotifierProvider.value 之间的区别, 以及何时使用每种情况 ChangeNotifierProvider :-

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider(
       create: (context) => ProductsProvider(),

ChangeNotifierProvider.value :-

return GridView.builder(
      padding: const EdgeInsets.all(10.0),
      itemCount: products.length,
      itemBuilder: (ctx, i) => ChangeNotifierProvider.value(
        value: products[i],

ChangeNotifierProvider 将创建您提供的 class 的实例。

ChangeNotifierProvider.value 将提供一个预实例化对象

ChangeNotifierProvider: 它从您要使用数据的地方创建一些 class 的新实例

ChangeNotifierProvider.value 如果您已经有一个先前加载了一些数据的实例,并且您想要使用先前加载的数据,那么您需要使用 ChangeNotifierProvider.value