我刚刚开始学习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,
),
);
}
}提前感谢
发布于 2020-11-08 14:22:55
哦,天哪,现在我很尴尬,这个问题是因为我把整个代码放在main.dart上,当我把整个代码分离到另一个新文件中时,它就能工作了。谢谢你
https://stackoverflow.com/questions/64735250
复制相似问题