@blajlhimik

Ошибка в управлений route из auto_route?

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() почему-то эта ошибка не возникает
  • Вопрос задан
  • 45 просмотров
Решения вопроса 1
@blajlhimik Автор вопроса
...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы