loadPages method
void
loadPages()
Implementation
void loadPages() {
_pages = widget.command.pages;
_currentPage = widget.command.currentPage;
print('----mixstack loadpage $_pages $_currentPage');
List<String?> addresses = _pages.map((e) => e.address).toList();
_mxObserverMaps.removeWhere((key, value) => !addresses.contains(key));
_otherObserverMaps.removeWhere((key, value) => !addresses.contains(key));
_gKeyMaps.removeWhere((key, value) => !addresses.contains(key));
_cacheWidgets.removeWhere((key, value) => !addresses.contains(key));
_focusNodes.removeWhere((key, value) => !addresses.contains(key));
for (var page in _pages) {
_mxObserverMaps.putIfAbsent(page.address, () => MXRouteObserver(pageAddress: page.address ?? ''));
_otherObserverMaps.putIfAbsent(page.address, () {
if (widget.observersBuilder != null) {
return widget.observersBuilder!();
} else {
return [];
}
});
_gKeyMaps.putIfAbsent(page.address, () => GlobalKey<State>());
_focusNodes.putIfAbsent(page.address, () => FocusScopeNode(debugLabel: page));
}
}