Чтобы перейти на другую страницу во Flutter в зависимости от того, вошел пользователь в систему или нет, вы можете рассмотреть следующие методы:
- Условная навигация. Используйте условные операторы для проверки статуса входа пользователя и соответствующей навигации. Если пользователь авторизован, перейдите на нужную страницу; в противном случае перейдите на страницу входа.
if (loggedIn) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => AnotherPage()),
);
} else {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => LoginPage()),
);
}
- Генератор маршрутов. Реализуйте генератор маршрутов, который обрабатывает логику навигации на основе статуса входа пользователя. Такой подход позволяет вам определять собственные маршруты и централизованно управлять навигацией.
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());
}
}
}
- Условная отрисовка виджетов. Условно отображайте различные виджеты в зависимости от статуса входа пользователя. Вы можете использовать виджет
Видимостьили условный операторif-elseдля отображения различного контента на одной странице.
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Page'),
),
body: loggedIn ? AnotherPage() : LoginPage(),
);
}