Flutter: MaterialPageRoute построитель для маршрута «/» вернул нуль

#flutter #mobile

#флаттер #Мобильный

Вопрос:

Я только начинаю изучать flutter и решил следовать руководству. В видео говорится, что я должен использовать MaterialPageRoute на фабрике маршрутов и объявлять глобальные значения для своих маршрутов, но я получил эту ошибку

     The following assertion was thrown building Builder(dirty):
The builder for route "/" returned null.
  

вот мой код

 import 'package:flutter/material.dart';
import 'package:layout_in_flutter/screens/location_detail/location_detail.dart';
import 'screens/locations/locations.dart';
import 'style.dart';

void main() {
  runApp(App());
}

const LocationsRoute = '/';
const LocationDetailRoute = '/location_detail';

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      onGenerateRoute: _routes(),
      theme: _theme(),
    );
  }

  RouteFactory _routes() {
    return (settings) {
      final Map<String, dynamic> arguments = settings.arguments;
      Widget screen;
      switch (settings.name) {
        case LocationsRoute:
          screen = Locations();
          break;
        case LocationDetailRoute:
          screen = LocationDetail(arguments['id']);
          break;
        default:
          return null;
      }
      return MaterialPageRoute(builder: (BuildContext context) => screen);
    };
  }

  ThemeData _theme() {
    return ThemeData(
      appBarTheme: AppBarTheme(
        textTheme: TextTheme(
          headline6: AppBarTextStyle,
        ),
      ),
      textTheme: TextTheme(
        headline6: Headline6TextStyle,
        bodyText2: BodyText2Style,
      ),
    );
  }
}
  

Заранее спасибо

Комментарии:

1. есть идеи, что мне сделать, чтобы решить эту проблему?

2. опубликуйте первые 6-8 верхних кадров из трассировки стека

3. MaterialApp lib main.dart:16 При возникновении исключения это был стек #0 MaterialRouteTransitionMixin.buildPage.<анонимное закрытие> пакет: flutter/…/material/page.dart:111 #1 MaterialRouteTransitionMixin.buildPage пакет: flutter/…/material/page.dart:117 #2 _ModalScopeState.build. <анонимное закрытие> пакет: flutter/…/widgets/routes.dart: 820 #3 Builder.build пакет: flutter /…/widgets/basic.dart:7183 #4 StatelessElement.build пакет: flutter /…/widgets/framework.dart: 4701 …

4. Я добавил это в сценарий

5. неважно, уже выяснил

Ответ №1:

Ну, боже, теперь я так смущен, что проблема вызвана тем, что я помещаю весь код в main.dart, когда я разделяю весь код на другой новый файл, он работает. Спасибо