pageBuilder property

NavigatorPageBuilder? pageBuilder

Implementation

NavigatorPageBuilder? get pageBuilder => _pageBuilder;
void pageBuilder=(NavigatorPageBuilder? builder)

If there is a ModulePageBuilder in a module, there can be no submodules.

Implementation

set pageBuilder(NavigatorPageBuilder? builder) {
  _pageBuilder = builder;

  final urlComponents = <String>['/$key'];
  var parentModule = parent;
  while (parentModule != null && parentModule.key.isNotEmpty) {
    urlComponents.insert(0, '/${parentModule.key}');
    parentModule = parentModule.parent;
  }
  final url = (StringBuffer()..writeAll(urlComponents)).toString();
  if (builder == null) {
    anchor.allUrls.remove(url);
  } else {
    anchor.allUrls.add(url);
  }
  // 处理存在 home 的 url
  if (key == kNavigatorPageDefaultUrl) {
    final url = (StringBuffer()..writeAll(urlComponents..removeLast())).toString();
    if (builder == null) {
      anchor.allUrls.remove(url);
    } else {
      anchor.allUrls.add(url);
    }
  }
}