#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, когда я разделяю весь код на другой новый файл, он работает. Спасибо