flutter - Flutter "context" Navigatior.pushedNamed 生成器 RouteSettings
问题描述
自从我将我的 BottomNavigationBar 重构为一个新类以来,我Navigator.pushNamed
的不再工作了。工作正常,setState()
所以我强烈认为context
. BottomNavigationBar 显示在应用程序中,但它不会再将我引导到下一页。我现在挣扎了几个小时来解决这个问题......
我得到的错误是: 在 _WidgetsAppState 中找不到路由 RouteSettings("...", null) 的生成器。
NewBottomNavigationBar类_
class NewBottomNavigationBar extends StatefulWidget {
@override
_NewBottomNavigationBarState createState() => _NewBottomNavigationBarState();
}
class _NewBottomNavigationBarState extends State<NewBottomNavigationBar> {
int _selectedTab = 0;
final _selectedTabList = [
TheSlateScreen.id,
Search.id,
LoginScreen.id,
];
@override
Widget build(BuildContext context) {
return BottomNavigationBar(
currentIndex: _selectedTab,
onTap: (int index) {
setState(() {
_selectedTab = index;
});
Navigator.pushNamed(
context,
_selectedTabList[_selectedTab].toString(),
);
},
unselectedItemColor: kSlate,
items: const <BottomNavigationBarItem>[
……
我使用 NewBottomNavigation() 的类
class TheSlateScreen extends StatefulWidget {
static const String id = 'theslate_screen';
@override
_TheSlateScreenState createState() => _TheSlateScreenState();
}
class _TheSlateScreenState extends State<TheSlateScreen> {
@override
Widget build(BuildContext context) {
screenWidth = MediaQuery.of(context).size.width;
screenHeight = MediaQuery.of(context).size.height;
return MaterialApp(
home: Scaffold(
bottomNavigationBar: NewBottomNavigationBar(),
appBar: AppBar(
leading: null,
actions: <Widget>[
IconButton(
icon: Icon(Icons.close),
......
我的 main.dart 中的路线
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (context) => SlateTasks(),
child: MaterialApp(
initialRoute: LoginScreen.id,
routes: {
LoginScreen.id: (context) => LoginScreen(),
RegistrationScreen.id: (context) => RegistrationScreen(),
TheSlateScreen.id: (context) => TheSlateScreen(),
ResetPasswordScreen.id: (context) => ResetPasswordScreen(),
Search.id: (context) => Search(),
},
));
解决方案
推荐阅读
- python - 如何在列表中查找重复项的索引?
- c# - 我无法像在 C# 中那样使用 T-SQL 创建 md5 哈希代码
- python-3.x - 在已安装 setuptools 时出现“ModuleNotFoundError: No module named 'setuptools.version'”
- python - 只要另一列中的值相同,就对列中的值求和
- concurrency - 一个 axios 实例的并发请求有限制吗?
- c++ - 在命名空间 std 之外专门化 std::hash 是否不安全?
- kubernetes - 无法在 Kubernetes 1.19 中创建具有相同键的多个标签
- cookies - 设置 Cookie 并定义域:员工站点(设置 cookie)> 公司站点
- javascript - 在 Vue 项目中使用 JavaScript SDK
- nlp - 自然语言处理中用作词汇文件的 *.subwords 文件是什么?