Не удалось найти генератор для маршрута "домашняя страница" в _MaterialAppState - PullRequest
0 голосов
/ 19 сентября 2018

Я получаю исключение, когда пытаюсь перейти от одного вида к другому в приложении флаттера.

I/flutter ( 2199): ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
I/flutter ( 2199): The following assertion was thrown while handling a gesture:
I/flutter ( 2199): Could not find a generator for route "home-page" in the _MaterialAppState.

Ответы [ 5 ]

0 голосов
/ 30 июня 2019

Вам необходимо определить маршрут в конкретном файле дротика, откуда вы хотите перейти к следующему экрану.Например, в вашем случае есть три экрана: 1. mainScreen.dart 2.loginScreen.dart 3.TabScreen.dart

Теперь вы можете определить маршрут для Loginscreen и TabScreen внутри mainscreen.dart, например:

routes : <String, WidgetBuilder>{
'/login' : (BuildContext context)=> LoginScreen()
'/tab' : (BuildContext context)=> TabScreen()
}

и вы пытаетесь перейти с LoginScreen на TabScreen, но вы не определили маршрут для TabScreen внутри LoginScreen.dart

Пожалуйста, убедитесь, что вы определили маршрут для TabScreen внутри LoginScreen:

routes : <String, WidgetBuilder>{
'/tab' : (BuildContext context)=> TabScreen()
}
0 голосов
/ 28 мая 2019

Это сообщение говорит о том, что в списке маршрутов искомый маршрут не указан.Итак, проверьте, есть ли в ваших MaterialApp-> маршрутах указанный вами маршрут.

0 голосов
/ 19 сентября 2018

Ошибка говорит, Could not find a generator for route "home-page" in the _MaterialAppState..Поскольку вы используете NamedRoute (выведено из сообщения об ошибке), и я думаю, что проблема с настройкой route .См. Пример для настройки маршрута,

MaterialApp(
title: 'Named Routes Demo',
initialRoute: '/',
routes: { //route setting
  '/': (context) => FirstScreen(),
  '/home-page': (context) => HomePage(), //you should have something like this.
},

)

0 голосов
/ 20 мая 2019

Попробуйте

  Navigator.push(context, new MaterialPageRoute(builder: (context) =>new PageName())
0 голосов
/ 19 сентября 2018

Используйте

Navigator.push(context, new MaterialPageRoute(
  builder: (context) =>
     new MyHomePage())
  );

Вместо

Navigator.of(context).pushNamed('/home-page');
//or
Navigator.pushedName(context, '/home-page');
...