didReplace method
The Navigator replaced oldRoute
with newRoute
.
Implementation
@override
void didReplace({Route? newRoute, Route? oldRoute}) {
developer.log(
'[PageNavigatorObserver][didReplace]newRoute: ${PageInfo.convertPageName(newRoute)}, oldRoute: ${PageInfo.convertPageName(oldRoute)}',
name: debugLogType.pagePerformance,
);
if (newRoute == null) {
return;
}
int index = _invalidIndex;
if (oldRoute != null) {
index = _pageStack
.indexWhere((pageInfo) => pageInfo.uniqueId == oldRoute.hashCode);
}
if (index > _invalidIndex) {
_pageStack[index] = PageInfo.route(newRoute);
} else {
_pageStack.add(PageInfo.route(newRoute));
}
_handleNavigator(NavigatorType.replace);
}