Flutter 颤振导航器和路由在单独的文件中显示错误:在“U”小部件中找不到路由路由设置的生成器(“详细信息”,null)
我正在开发这个颤振应用程序,并试图使路由在不同的文件上工作。现在我有了一个登录页面,其中有一个登录按钮。单击此登录按钮时,应用程序应导航到主页。我看了一些教程,但它们都将导航器和其他小部件放在同一页上 就我而言,我的文件结构是: 在routes.dart中:Flutter 颤振导航器和路由在单独的文件中显示错误:在“U”小部件中找不到路由路由设置的生成器(“详细信息”,null),flutter,routes,navigation,Flutter,Routes,Navigation,我正在开发这个颤振应用程序,并试图使路由在不同的文件上工作。现在我有了一个登录页面,其中有一个登录按钮。单击此登录按钮时,应用程序应导航到主页。我看了一些教程,但它们都将导航器和其他小部件放在同一页上 就我而言,我的文件结构是: 在routes.dart中: import 'package:flutter/material.dart'; import 'widgets/login.dart'; import 'widgets/homepage.dart'; void main() { r
import 'package:flutter/material.dart';
import 'widgets/login.dart';
import 'widgets/homepage.dart';
void main() {
runApp(Nav2App());
}
class Nav2App extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
routes: {
'/': (context) => Login(),
'/homepage': (context) => HomePage(),
},
);
}
}
在login.dart中:
child: TextButton(
style: ButtonStyle(
...
))),
child: const Text('Login'),
onPressed: () {
Navigator.pushNamed(
context,
'/homepage',
);
},
),
),
我想我需要在main.dart做点什么,比如:
Widget build(BuildContext context) {
return MaterialApp(
// debugShowCheckedModeBanner: false,
title: 'Flutter Login Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyLoginPage(title: 'login page'),
routes: ***something***
);
}
您的
/details
名称没有导航器
更改您的登录代码,如下所示:
child: TextButton(
style: ButtonStyle(
...
))),
child: const Text('Login'),
onPressed: () {
Navigator.pushNamed(
context,
'/homepage',
);
},
),
),
您的
/details
名称没有导航器
更改您的登录代码,如下所示:
child: TextButton(
style: ButtonStyle(
...
))),
child: const Text('Login'),
onPressed: () {
Navigator.pushNamed(
context,
'/homepage',
);
},
),
),
您需要将登录页面替换为主页。因此,使用推送替换。这样他们就不会在左上角有后退按钮 正如你所说,你在上面的评论中更新了/详情到/主页。但仍然无法工作,请确保您进行了完全重新加载,而不仅仅是热重新加载
Navigator.pushReplacementNamed(context, "/homepage");
不要像上面显示的那样在代码中制作第二个材质应用程序。当你创建另一个材质应用程序时,你也会得到一个全新的导航器堆栈
用脚手架代替。1个material应用程序是您所需要的全部。您将希望用主页替换登录页面。因此,使用推送替换。这样他们就不会在左上角有后退按钮 正如你所说,你在上面的评论中更新了/详情到/主页。但仍然无法工作,请确保您进行了完全重新加载,而不仅仅是热重新加载
Navigator.pushReplacementNamed(context, "/homepage");
不要像上面显示的那样在代码中制作第二个材质应用程序。当你创建另一个材质应用程序时,你也会得到一个全新的导航器堆栈
用脚手架代替。1个material应用程序就是您所需要的。我刚刚发现,当我从编辑器复制代码时,我犯了一个错误。我已经更新了我的问题。很抱歉造成混淆…我刚刚发现,当我从编辑器复制代码时,我犯了一个错误。我已经更新了我的问题。很抱歉造成混淆…是的,“/details”应该是“/homepage”,这是我将代码复制到StackOverflow时的一个输入错误。在我的本地编辑器中,
onPressed
功能中有“/homepage”导航器。我已经更新了问题。很抱歉造成混淆。将initialRoute添加到materialApp()是的,“/details”应该是“/homepage”,这是我将代码复制到StackOverflow时的一个输入错误。在我的本地编辑器中,onPressed
功能中有“/homepage”导航器。我已经更新了问题。很抱歉造成混淆。将initialRoute添加到materialApp()是的,“/details”应该是“/homepage”,这是我将代码复制到StackOverflow时的一个输入错误。在我的本地编辑器中,onPressed
功能中有“/homepage”导航器。我已经更新了问题。很抱歉造成混淆。是的,“/details”应该是“/homepage”,这是我将代码复制到StackOverflow时的一个输入错误。在我的本地编辑器中,onPressed
功能中有“/homepage”导航器。我已经更新了问题。抱歉造成混淆。关于1物料应用规则,您是对的。事实证明,除了导航,我还犯了一些其他错误。现在我修好了。非常感谢。关于1材质应用规则,您是对的。事实证明,除了导航,我还犯了一些其他错误。现在我修好了。非常感谢。