Что означает appStateManager.addListener(notifyListeners);?

# mean?

Вопрос:

Я следую руководству raywenderlich по flutter apprentice (глава 7 https://www.raywenderlich.com/books/flutter-apprentice/v1.0/chapters/7-routes-navigation ) и я не могу понять, что означает вызов addListener(notifyListener) в следующем коде. В частности, я думаю, что addListener должен принимать объект слушателя, но здесь он принимает функцию, которая определена в суперклассе!

 class AppRouter extends RouterDelegate
    with ChangeNotifier, PopNavigatorRouterDelegateMixin {
 
  // 3
  final AppStateManager appStateManager;
  // 4
  final GroceryManager groceryManager;
  final ProfileManager profileManager;

  AppRouter({
    required this.appStateManager,
    required this.groceryManager,
    required this.profileManager,
  }) : navigatorKey = GlobalKey<NavigatorState>() {
    appStateManager.addListener(notifyListeners); 
    groceryManager.addListener(notifyListeners);
    profileManager.addListener(notifyListeners);
  }
...
}
 

Есть идеи, что происходит и как это работает?

Ответ №1:

По сути, addListener функции добавляют слушателя, который запускает предоставленные функции. Таким образом, по сути, каждый раз XXXStateManager , когда изменяется состояние, он запускает notifyListeners метод из ChangeNotifier класса

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

1. Итак, в принципе, любой, кто слушает AppRouter, будет уведомлен об изменениях в XXXStateManager? Итак, любые изменения в XXStateManagers будут автоматически уведомлены всем слушателям AppRouter. Я правильно понял?

2. да, если я вас правильно понял, вы правы