gpt4 book ai didi

android - 为什么当我使用 pushNamedReplacement 而不是 pushReplacement 时它不起作用?

转载 作者:IT王子 更新时间:2023-10-29 07:16:43 25 4
gpt4 key购买 nike

我尝试使用命名路由,但它似乎并没有给我一个错误“无法找到 _MaterialAppState 的路由生成器(“/homepage”,null)。我无法理解 namedRoutes 在这方面的工作案例。

 import 'package:flutter/material.dart';
import './home.dart';
import './auth.dart';

void main() {
runApp(new MyApp());
}

class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return MyAppState();
}
}

class MyAppState extends State<MyApp> {
Widget build(BuildContext context) {
return MaterialApp(
initialRoute: '/',
routes: {
'/': (BuildContext context) => Auth(),
'/homepage': (BuildContext context) => Home(),
},
);
}
}
//somewhere in auth.dart file
RaisedButton(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(25.0)),
color: Theme.of(context).accentColor,
child: Column(
children: <Widget>[
Icon(Icons.arrow_forward),
],
),
onPressed: () {
if (_email == "email" && _pass == '123') {
//Navigator.pushReplacementNamed(context,'/homepage');
Navigator.pushReplacement(context, MaterialPageRoute(
builder: (BuildContext context) => Home(),
));
} else {
Scaffold.of(context).showSnackBar(SnackBar(
content:
Text("Please Enter Corrent Login Details"),
action: SnackBarAction(
label: "OK",
onPressed: () {
_controllerEmail.clear();
_controllerPass.clear();
},
),
));
}
},
),

我需要它来使用命名路由

最佳答案

你应该使用:

Navigator.of(context).pushReplacementNamed('/homepage');

查看documentation了解更多详情。

编辑:
仅使用 1 个 Material 应用程序。使用两个 Material 应用程序(在 main.dart 和 Auth.dart 中)导致 flutter 在最近的 Material 应用程序(Auth.dart)中搜索路由,并且路由定义在最高实例(main.dart)中。
您应该从 Auth.dart 中删除 MaterialApp

关于android - 为什么当我使用 pushNamedReplacement 而不是 pushReplacement 时它不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57146482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com