navigate method Null safety
Forces the Router to run the callback
and create a new history
entry in the browser.
The web application relies on the Router to report new route information in order to create browser history entry. The Router will only report them if it detects the RouteInformation.location changes. Use this method if you want the Router to report the route information even if the location does not change. This can be useful when you want to support the browser backward and forward button without changing the URL.
For example, you can store certain state such as the scroll position into the RouteInformation.state. If you use this method to update the scroll position multiple times with the same URL, the browser will create a stack of new history entries with the same URL but different RouteInformation.states that store the new scroll positions. If the user click the backward button in the browser, the browser will restore the scroll positions saved in history entries without changing the URL.
See also:
Implementation
static void navigate(BuildContext context, VoidCallback callback) {
final _RouterScope scope = context
.getElementForInheritedWidgetOfExactType<_RouterScope>()!
.widget as _RouterScope;
scope.routerState._setStateWithExplicitReportStatus(RouteInformationReportingType.navigate, callback);
}