buildPage method
return List Page for render stack pages in Navigator 2.0 always return a new instance of List to build new render
Implementation
List<Page<dynamic>> buildPage() {
l.log('buildPage', name: debugLabel);
if (pages == null || pages!.isEmpty) {
l.log('buildPage: init', name: debugLabel);
pages = [];
pages!.add(initialRoute.page(state: initialRoute.state(null)));
return pages!;
}
// check key of pages
if (!kReleaseMode) {
final keys = pages!.map((e) => e.key?.toString()).toList();
final distinct = keys.toSet();
if (distinct.length != keys.length) {
distinct.forEach(keys.remove);
l.log('pages = $pages', name: debugLabel);
assert(false, 'dublicate keys page: ${keys.join(',')}');
}
}
l.log('return buildPage: pages = $pages', name: debugLabel);
// always return new object
return [...pages!];
}