class AppRouter extends _$AppRouter {
@override
List<AutoRoute> get routes => [
AutoRoute(page: RegisterRoute.page),
AutoRoute(page: SettingsRoute.page),
AutoRoute(page: EmailConfirmationRoute.page),
AutoRoute(page: SplashRouteRoute.page, initial: true),
AutoRoute(page: LoginRoute.page),
];
}
final _appRouter = AppRouter();
Supabase.instance.client.auth.onAuthStateChange.listen((authState) {
final event = authState.event;
final session = authState.session;
if (event == AuthChangeEvent.signedIn) {
if (session != null) {
_appRouter
..popUntilRoot()
..replace(SettingsRoute(user: session.user));
} else {
_appRouter
..popUntilRoot()
..replace(const RegisterRoute());
}
} else if (event == AuthChangeEvent.signedOut) {
_appRouter
..popUntilRoot()
..replace(const RegisterRoute());
}
});
если клиент аутентифицирован или проходит аутентификацию при
..popUntilRoot()
в
_appRouter
..popUntilRoot()
..replace(SettingsRoute(user: session.user));
возникает ошибка
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: 'package:auto_route/src/router/controller/routing_controller.dart': Failed assertion: line 1355 pos 12: '_navigatorKey.currentState != null': is not true.
если меняю на
_appRouter
..pop()
..replace(SettingsRoute(user: session.user));
то создаются уже 2 страницы
SettingsRoute
, при перемещений на
RegisterRoute()
почему-то эта ошибка не возникает