registerAppRouter<T extends BaseAppRouter> method
void
registerAppRouter<T extends BaseAppRouter>(
- T? router, {
Registers the app router and navigator for navigation management
Parameters:
router: The router instance that extends BaseAppRouterenableNavigationLogs: Controls whether navigation logs are printed to console- true: Navigation logs will be printed (default)
- false: Navigation logs will be disabled
This method:
- Registers the router as a singleton
- Creates and registers an AppNavigator instance
Example:
void configureInjectionApp() {
// With navigation logs enabled (default)
getIt.registerAppRouter<AppRouter>(AppRouter());
// With navigation logs disabled
getIt.registerAppRouter<AppRouter>(AppRouter(), enableNavigationLogs: false);
}
Note: The router registration is skipped if it's already registered or if the provided router is null.
Implementation
void registerAppRouter<T extends BaseAppRouter>(
T? router, {
bool enableNavigationLogs = true,
}) {
try {
if (router == null) {
throw ArgumentError('Router cannot be null');
}
if (!isRegistered<T>()) {
registerLazySingleton<BaseAppRouter>(() => get<T>());
registerLazySingleton<AppNavigator>(
() => AppNavigator(
get<T>(),
enableNavigationLogs: enableNavigationLogs,
),
);
}
} catch (e) {
throw 'Failed to register router: $e';
}
}