Skip to main content
The RouteInformationParser takes the RouteInformation from a RouteInformationProvider and parses it into a user-defined data type. This implementation parses route information into DefaultRoute objects.

Properties

routeUri
Uri
The current route URI.
initialRoute
String
The initial route path.
initialized
bool
Whether the parser has been initialized.
defaultRoute
DefaultRoute?
Optional default route to use on initialization.
defaultRoutePath
String?
Optional default route path to use on initialization.
setInitialRouteFunction
DefaultRoute Function(Uri initialRoute)?
Optional function to set the initial route from a URI.
setInitialRoutePathFunction
String Function(Uri initialRoute)?
Optional function to set the initial route path from a URI.
debugLog
bool
Whether to enable debug logging.

Constructor

DefaultRouteInformationParser({
  DefaultRoute? defaultRoute,
  String? defaultRoutePath,
  DefaultRoute Function(Uri initialRoute)? setInitialRouteFunction,
  String Function(Uri initialRoute)? setInitialRoutePathFunction,
  bool debugLog = false
})
defaultRoute
DefaultRoute?
Optional default route to use on initialization.
defaultRoutePath
String?
Optional default route path (must start with ’/’).
setInitialRouteFunction
DefaultRoute Function(Uri initialRoute)?
Optional function to set initial route from URI.
setInitialRoutePathFunction
String Function(Uri initialRoute)?
Optional function to set initial route path from URI.
debugLog
bool
default:"false"
Whether to enable debug logging.

Methods

parseRouteInformation

Future<DefaultRoute> parseRouteInformation(RouteInformation routeInformation)
Parses the route information into a DefaultRoute. This method is called by the Flutter framework.
routeInformation
RouteInformation
required
The route information to parse.
Returns a Future that resolves to a DefaultRoute.

restoreRouteInformation

RouteInformation? restoreRouteInformation(DefaultRoute configuration)
Restores route information from a DefaultRoute. This method is called by the Flutter framework.
configuration
DefaultRoute
required
The DefaultRoute to convert to RouteInformation.
Returns a RouteInformation object or null.

Example

// Basic usage
final parser = DefaultRouteInformationParser(
  defaultRoutePath: '/home',
  debugLog: true,
);

// With custom initial route function
final parser = DefaultRouteInformationParser(
  setInitialRouteFunction: (uri) {
    // Custom logic to determine initial route
    if (uri.path == '/') {
      return DefaultRoute.fromUrl('/home');
    }
    return DefaultRoute.fromUri(uri);
  },
);

// With default route object
final parser = DefaultRouteInformationParser(
  defaultRoute: DefaultRoute(
    path: '/home',
    label: 'home',
  ),
);

// Use in MaterialApp.router
MaterialApp.router(
  routerDelegate: routerDelegate,
  routeInformationParser: parser,
);

Build docs developers (and LLMs) love