【问题标题】:Using builder and create both in Flutter's ChangeNotifierProvider使用 builder 并在 Flutter 的 ChangeNotifierProvider 中创建两者
【发布时间】:2021-06-17 09:31:27
【问题描述】:

来自:https://firebase.google.com/codelabs/firebase-get-to-know-flutter#1

void main() {
  runApp(
    ChangeNotifierProvider(
      create: (context) => ApplicationState(),
      builder: (context, _) => App(),
    ),
  );
}

这是 Flutter 的网站,所以我认为代码是值得信赖的,这意味着 createbuilder 可能都是必需的。

这个答案:https://stackoverflow.com/a/59101137/462608。 表示builder 已贬值,应使用create

但是上面的代码同时使用了 createbuilder这个builder在这里有什么用,而create也在那里呢? buildercreate 有何不同?

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    是的,create 和 builder 有很大区别

    • create :如果你想实例化你的通知器,你应该使用 create 但是如果你通知者已经实例化你不需要使用创建 只需使用 ChangeNotifierProvider.value

    • builder : 如果你有一些条件来显示特定的小部件,这很有用 例如,如果在您的逻辑中,您需要在 2 个小部件之间进行选择以显示 您将使用 builder 并将其传递给 child,它是静态小部件

    ChangeNotifierProvider(
          create: (context) => ApplicationState(),
          builder: (context, child){
               if(condition){
                 return SomeWidget();
               }
              return child;
          },
         child:App(),
        )
    

    除了不需要建造者

    【讨论】:

    • 请谈谈 buider 被贬低和人们说使用 create 来代替。
    • 它已被弃用,因为大多数情况下不需要它,您可以直接使用 create 和 child 参数
    猜你喜欢
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 2020-11-20
    • 2021-06-06
    • 1970-01-01
    • 2020-09-21
    • 2019-11-15
    相关资源
    最近更新 更多