【问题标题】:ChangeNotifierProvider&&ChangeNotifierProvider.valueChangeNotifierProvider&&ChangeNotifierProvider.value
【发布时间】:2021-01-05 15:41:59
【问题描述】:

我无法理解 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],

【问题讨论】:

    标签: flutter dart flutter-provider


    【解决方案1】:

    ChangeNotifierProvider: 它会创建一个您想要使用数据的类的新实例

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

    【讨论】:

    • 如果我使用 ChangeNotifierProvider.value 而我之前没有实例会发生什么?
    • 只传递一个新创建的实例。它将像 ChangeNotifierProvider 一样工作
    • 所以我总是使用 ChangeNotifierProvider.value ?
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-12-11
      • 2021-06-06
      • 1970-01-01
      • 2021-11-14
      • 2021-11-15
      • 1970-01-01
      • 2021-12-10
      • 2020-07-16
      • 1970-01-01
      相关资源
      最近更新 更多