flutter - 使用命名路由时找不到路由错误的生成器
问题描述
我正在尝试CupertinoTabBar
与命名路由一起使用。我尝试添加一个CupertinoTabScaffold
并在其中包含选项卡视图的选项卡栏,但是当应用程序将应用程序推送到不同的路线时,应用程序会引发错误:
FlutterError (Could not find a generator for route RouteSettings("/randomONE", null) in the _CupertinoTabViewState
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (context) => SomeProvider(),
child: MaterialApp(
title: 'Cool Title',
home: CupertinoTabScaffold(
tabBar: CupertinoTabBar(
items: [
BottomNavigationBarItem(title: Text('First Page'), icon: Icon(Icons.access_alarms)),
BottomNavigationBarItem(title: Text('Second Page'), icon: Icon(Icons.account_balance)),
BottomNavigationBarItem(title: Text('Third Page'), icon: Icon(Icons.accessible)),
],
),
tabBuilder: (context, index) {
CupertinoTabView selectedView;
switch (index) {
case 0:
selectedView = CupertinoTabView(builder: (context) {
return CupertinoPageScaffold(child: FirstPage());
});
break;
default:
}
return selectedView;
}),
initialRoute: NamedRoutes.splashScreen,
routes: {
'/first': (BuildContext context) => FirstPage(),
'/second': (BuildContext context) => SecondPage(),
'/randomONE': (BuildContext context) => ThirdPage(),
},
),
);
}
}
解决方案
您只需完成切换:
switch (index) {
case 0:
selectedView = CupertinoTabView(builder: (context) {
return CupertinoPageScaffold(child: FirstPage());
});
break;
case 1:
selectedView = CupertinoTabView(builder: (context) {
return CupertinoPageScaffold(child: SecondPage());
});
break;
case 2:
selectedView = CupertinoTabView(builder: (context) {
return CupertinoPageScaffold(child: ThirdPage());
});
break;
default:
}
推荐阅读
- javascript - 标识一个值的 javascript 语句
- php - 如何使用 PHP Wrapper 传递 API 密钥
- java - Android 底页对话框动态内容动画
- angular - 尝试从 Angular 中的 firestore 获取单个文档时出错
- xml - XSL:迭代静态值无法按预期运行
- bash - 如何将参数与模式进行比较?
- reactjs - React reload on save 编辑 index.js 文件时停止工作
- excel - 红移 - Excel PowerPivot
- javascript - 页面标题在返回按钮后没有显示无限滚动
- c++ - _Scary->**_Myhead** 是 0xDDDDDDDD VC++ 调试器