Не удалось найти генератор для маршрута RouteSettings ("chat", null) в _CustomTabViewState

У меня есть набор маршрутов, которые я определил в routes.dart и эти маршруты связаны в main.dart файл, как показано ниже.

  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        StreamProvider<ConnectivityStatus>(
          create: (_) => ConnectionService().connectionStatusController.stream,
        ),
        ...
        ChangeNotifierProvider<AuthNotifier>(
          create: (_) => AuthNotifier(),
        ),
      ],
      child: MaterialApp(
        debugShowCheckedModeBanner: false,
        routes: Routes.routes,
        home: SplashScreen(),
      ),
    );
  }

Routes.dart файл:

class Routes {
  Routes._();

  static const chat = '/chat';

  static final routes = <String, WidgetBuilder>{
    chat: (BuildContext ctx) => CircleChat(),
  };
}

У меня есть кнопка, которая запускает указанный выше маршрут, но выдает ошибку.

FlatButton(
  Navigator.of(context).pushReplacementNamed(Routes.chat);
)

Ошибка -

Следующее утверждение было выдано при обработке жеста: Не удалось найти генератор для маршрута RouteSettings("chat", null) в _CustomTabViewState. Генераторы маршрутов ищутся в следующем порядке:

  1. Для маршрута "/" используется свойство "builder", если оно не равно нулю.
  2. В противном случае используется таблица маршрутов, если в ней есть запись для маршрута.
  3. В противном случае вызывается onGenerateRoute. Он должен возвращать ненулевое значение для любого действительного маршрута, не обрабатываемого "построителем" и "маршрутами".
  4. Наконец, если все остальное не удается, вызывается onUnknownRoute. К сожалению, onUnknownRoute не ставился.

Когда было создано исключение, это был стек:#0 _CustomTabViewState._onUnknownRoute.

PS - Для аналогичной ошибки я прошел через то и это, но я не нашел объяснения, почему он не работает, когда вся семантика верна.

1 ответ

Используйте маршруты или свойство onGenerateRoutes в CuptinoTabView для CuptinoTabBar и передайте здесь свои маршруты или аргументы onGenerateRoutes.

Другие вопросы по тегам