【问题标题】:Flutter provider, question around Dart syntaxFlutter 提供者,关于 Dart 语法的问题
【发布时间】:2021-04-21 06:09:13
【问题描述】:

我对 Dart/Flutter 比较陌生,

只是努力理解一些代码/语法,想知道是否有人可以帮助解释。

我正在查看设置多个提供程序的示例,但我无法理解设置 update.. 的代码。

       providers: [
        // In this sample app, CatalogModel never changes, so a simple Provider
        // is sufficient.
        Provider(create: (context) => CatalogModel()),
        // CartModel is implemented as a ChangeNotifier, which calls for the use
        // of ChangeNotifierProvider. Moreover, CartModel depends
        // on CatalogModel, so a ProxyProvider is needed.
        ChangeNotifierProxyProvider<CatalogModel, CartModel>(
          create: (context) => CartModel(),
          update: (context, catalog, cart) {
            cart.catalog = catalog;
            return cart;
          },
        ),
      ],

具体...

 update: (context, catalog, cart) {
            cart.catalog = catalog;
            return cart;
          }

我认为这是一个接受 3 个参数 context、catelog、cart 的函数

但我没有看到它们第一次实例化的地方

谁能解释这里发生了什么?

谢谢

【问题讨论】:

    标签: dart flutter-provider


    【解决方案1】:

    update: 表示ChangeNotifierProxyProvider&lt;CatalogModel, CartModel&gt; 构造函数的参数,传递给它一个接受三个参数的匿名函数。 ChangeNotifierProxyProvider 中(或附近)的代码将根据需要调用此函数。

    【讨论】:

    • 啊,我明白了——太好了,谢谢你发布 Randal
    猜你喜欢
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    相关资源
    最近更新 更多