Поставщик порхания, вопрос о синтаксисе Dart

#dart #flutter-provider

#dart #поставщик порхания

Вопрос:

Я относительно новичок в 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

Но я нигде не вижу, где они впервые создаются

Кто-нибудь может объяснить, что здесь происходит?

Спасибо

Ответ №1:

update: обозначает параметр ChangeNotifierProxyProvider<CatalogModel, CartModel> конструктору, передавая ему анонимную функцию, которая принимает три параметра. Код в (или рядом) с ChangeNotifierProxyProvider будет вызывать эту функцию по мере необходимости.

Комментарии:

1. Ах, я понимаю — это здорово, спасибо за публикацию Рэндала