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));
  }
}