Переход на другую страницу во Flutter в зависимости от статуса входа пользователя

Чтобы перейти на другую страницу во Flutter в зависимости от того, вошел пользователь в систему или нет, вы можете рассмотреть следующие методы:

  1. Условная навигация. Используйте условные операторы для проверки статуса входа пользователя и соответствующей навигации. Если пользователь авторизован, перейдите на нужную страницу; в противном случае перейдите на страницу входа.
if (loggedIn) {
  Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => AnotherPage()),
  );
} else {
  Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => LoginPage()),
  );
}
  1. Генератор маршрутов. Реализуйте генератор маршрутов, который обрабатывает логику навигации на основе статуса входа пользователя. Такой подход позволяет вам определять собственные маршруты и централизованно управлять навигацией.
class RouteGenerator {
  static Route<dynamic> generateRoute(RouteSettings settings) {
    switch (settings.name) {
      case '/':
        return MaterialPageRoute(builder: (_) => HomePage());
      case '/another':
        if (loggedIn) {
          return MaterialPageRoute(builder: (_) => AnotherPage());
        } else {
          return MaterialPageRoute(builder: (_) => LoginPage());
        }
// Add more routes as needed
      default:
        return MaterialPageRoute(builder: (_) => NotFoundPage());
    }
  }
}
  1. Условная отрисовка виджетов. Условно отображайте различные виджеты в зависимости от статуса входа пользователя. Вы можете использовать виджет Видимостьили условный оператор if-elseдля отображения различного контента на одной странице.
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: Text('Page'),
    ),
    body: loggedIn ? AnotherPage() : LoginPage(),
  );
}