#flutter
Вопрос:
Я использую
Navigator.of(context).pushNamed(
AllCategoryScreen.routeName,
)),
// route generator
class AppRouter {
const AppRouter._();
static Route<dynamic> onGenerateRoute(RouteSettings settings) {
switch (settings.name) {
case MainScreen.routeName:
return MaterialPageRoute(builder: (_) => MainScreen());
break;
case HomeScreen.routeName:
return MaterialPageRoute(builder: (_) => HomeScreen());
break;
case WelcomeScreen.routeName:
return MaterialPageRoute(builder: (_) => WelcomeScreen());
break;
case LoginScreen.routeName:
return MaterialPageRoute(builder: (_) => LoginScreen());
break;
case RegisterScreen.routeName:
return MaterialPageRoute(builder: (_) => RegisterScreen());
break;
case ResetPasswordScreen.routeName:
return MaterialPageRoute(builder: (_) => ResetPasswordScreen());
break;
case ChangePasswordScreen.routeName:
return MaterialPageRoute(builder: (_) => ChangePasswordScreen());
break;
case OtpScreen.routeName:
return MaterialPageRoute(builder: (_) => OtpScreen());
break;
case ProductDetailsScreen.routeName:
return MaterialPageRoute(builder: (_) => ProductDetailsScreen());
break;
case FavoriteScreen.routeName:
return MaterialPageRoute(builder: (_) => FavoriteScreen());
break;
case ChatsScreen.routeName:
return MaterialPageRoute(builder: (_) => ChatsScreen());
break;
case AllCategoryScreen.routeName:
return MaterialPageRoute(builder: (_) => AllCategoryScreen());
break;
case AddNewAdScreen.routeName:
return MaterialPageRoute(builder: (_) => AddNewAdScreen());
break;
case AddAdSearchScreen.routeName:
return MaterialPageRoute(builder: (_) => AddAdSearchScreen());
break;
default:
throw const RouteException("Page Not Found");
}
}
}
но я получаю эту ошибку
Navigator.onGenerateRoute был равен нулю, но указывался маршрут с именем «/экран всех категорий».
и я использую блок для управления состоянием аутентификации, если аутентифицирован или нет, я не знаю, в этом проблема или нет
Комментарии:
1. «статический маршрут<динамический> onGenerateRoute(настройки маршрутов) { переключатель (settings.name) { case MainScreen.Имя маршрута: возврат MaterialPageRoute(конструктор: (_) =<динамический>> Основной экран()); перерыв; по умолчанию: исключение const RouteException(«Страница не найдена»); } } ‘
2. Я обновил вопрос
3. да, я думаю, что знаю, что я сделал неправильно, я использую навигатор приложений, используя навигатор блоков( страницы: [ если (состояние не подтверждено)) Страница материалов( дочерний элемент: BlocProvider( создать: (контекст) = > AuthCubit(sessionCubit: контекст.чтение><SessionCubit> ()), дочерний элемент: AuthNavigator (),),), если (состояние аутентифицировано) Страница материалов(дочерний элемент: главный экран ())], onPopPage: (маршрут, результат) =<SessionCubit>> маршрут.didPop(результат),);»‘
4. и я должен использовать эту идею во всем приложении Я новичок в блоке и нашел эту новую идею навигатора приложений хорошей, но теперь я хочу изменить все приложение на этот навигатор, есть идеи ?