# 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. да, если я вас правильно понял, вы правы