Pull to refresh

Comments 5

А если в приложении 100+ экранов и при навигации на все (кроме парочки, касающихся авторизации) нужна проверка через AuthGuard, нужно вручную для всех ста роутов прописывать параметр guards? Или есть какой-то способ задания AuthGuard без ручного прокидывания в каждый роут?

Нашёл в доке, как сделать глобальную обработку

@AutoRouterConfig()
class AppRouter extends $AppRouter implements AutoRouteGuard {
  @override
  void onNavigation(NavigationResolver resolver, StackRouter router) {
      if(isAuthenticated || resolver.route.name == LoginRoute.name){
          resolver.next();
      }else{
          resolver.redirect(LoginRoute(onResult:(didLogin)=> resolver.next(didLogin)))
      }
   }
  }

Можно добавить Guard в главный маршрут. Тогда при запуске приложения вы автоматически перейдете на экран аутентификации если не авторизованы.

А почему рекомендуете go_router? Можете поделиться, чем auto_route хуже, какие кейсы не покрывает в ваших проектах или с какими проблемами столкнулись. Мы недавно в компании перешли на Flutter с Xamarin Native, и пока сделали выбор в пользу auto_route.

Моя рекомендация заключается в том что go_router разрабатывается и поддерживается командой Flutter. Auto_route же это один майнтайнер). Других явных проблем особо нет. auto_route работает успешно на многих проектах. Так как выпилить его сейчас уже очень дорого😁

Sign up to leave a comment.