运行报错: A GlobalKey was used multiple times inside one widget's child list.
来源:6-7 如何创建和使用Flutter的路由与导航?【边学边做】

慕无忌6890528
2022-03-01
main.dart 代码
import 'package:flutter/material.dart';
// 如何使用 Flutter 包 与 插件 < PluginUse() >
// import 'package:flutter_basics_mu_01/plugin_use.dart';
// StatelessWidget 无状态组件 < LessGroupLess() >
import 'package:flutter_basics_mu_01/learn_less_group_page.dart';
// StatefulWidget 有状态组件 < StatefulGroup() >
import 'package:flutter_basics_mu_01/learn_stateful_group_page.dart';
// Flutter 布局 < LayoutPage() >
import 'package:flutter_basics_mu_01/learn_layout.dart';
// Flutter 路由与导航
//
// void main() {
// runApp(const MyApp());
// // runApp(PluginUse());
// }
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// const MyApp({Key? key}) : super(key: key);
// This widget is the root of your application.
Widget build(BuildContext context) {
return MaterialApp(
// 最上面的title是在将应用划到手机屏幕中间时展示的title;下面的 title 是页面顶部的 title 。
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: Text('Flutter 路由导航使用'),
),
body: RouteNavigator(),
),
// home: RouteNavigator(title: 'Flutter Demo Home Page'),
/**
* 四: 配置路由
* 1. routes 是 MaterialApp 的属性, 我们可以在 routes 中添加路由设置 。
*/
routes: <String, WidgetBuilder>{
'less': (BuildContext context)=> LessGroupLess(), // 无状态组件 页面
'ful': (BuildContext context)=> StatefulGroup(), // 有状态组件 页面
'layout': (BuildContext context)=> LayoutPage(), // Flutter 布局 页面
// 'less': (BuildContext context)=> LessGroupLess(), // 无状态组件 页面
},
);
}
}
class RouteNavigator extends StatefulWidget {
// State<RouteNavigator> createState() => _RouteNavigatorState();
_RouteNavigatorState createState() => _RouteNavigatorState();
}
class _RouteNavigatorState extends State<RouteNavigator> {
Widget build(BuildContext context) {
return Container(
// 放置上下排列的 Column
child: Column(
children: <Widget>[
_item('StatelessWidget 基础组件', LessGroupLess(), 'less'),
_item('StatefulWidget 基础组件', StatefulGroup(), 'ful'),
_item(' Flutter 布局 基础组件', LayoutPage(), 'layout'),
],
),
);
}
_item(String title, page, String routeName) {
return Container(
child: RaisedButton(
onPressed: (){},
child: Text(title),
),
);
}
}
报错图片
写回答
1回答
-
CrazyCodeBoy
2022-03-02
对照下这块课程源码检查下你的代码实现看是否有出入的地方呢:https://git.imooc.com/coding-321/flutter_trip/src/master/demo/flutter_base_demo/lib/main.dart
00
相似问题