我正在關注 raywenderlich 的 flutter apprentice 教程(第 7 章https://www.raywenderlich.com/books/flutter-apprentice/v1.0/chapters/7-routes-navigation),但我無法理解對 addListener 的呼叫(notifyListener) 在以下代碼中表示。具體來說,我認為 addListener 應該接受一個 Listener 物件,但在這里,它接受一個在超類中定義的函式!
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);
}
...
}
知道發生了什么以及它是如何作業的嗎?
uj5u.com熱心網友回復:
本質上,這些addListener函式添加了一個偵聽器,用于觸發所提供的函式。所以本質上,每次XXXStateManager狀態改變時,都會觸發類中的notifyListeners方法ChangeNotifier
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/340063.html
