Flutter 颤振页面路由
我想从主页导航到登录页面。我已经实现了一些代码。但这不是工作。运行代码时出错。MaterialPage路由(生成器:(上下文)=>LoginPage());此行出现错误。无论我试过多少次,我都无法解决这个问题。这是完整的代码段Flutter 颤振页面路由,flutter,routes,Flutter,Routes,我想从主页导航到登录页面。我已经实现了一些代码。但这不是工作。运行代码时出错。MaterialPage路由(生成器:(上下文)=>LoginPage());此行出现错误。无论我试过多少次,我都无法解决这个问题。这是完整的代码段 return Scaffold( appBar: new AppBar( title: new Text("Home"), backgroundColor: Colors.grey[500],
return Scaffold(
appBar: new AppBar(
title: new Text("Home"),
backgroundColor: Colors.grey[500],
actions: <Widget>[
PopupMenuButton<String>(
child: Container(
width: 63,
height: 63,
child: alucard,
),
onSelected: (value) {
if(value == Constants.logout){
Navigator.pushReplacementNamed(
context,
MaterialPageRoute(builder: (context) => LoginPage()));
}
},
itemBuilder: (BuildContext context) {
return Constants.choices.map((String choice){
return PopupMenuItem<String>(
value: choice,
child: Text(choice),
);
}).toList();
},
)
],
),
backgroundColor: Colors.grey[800],
body: body,
drawer: AppDrawer(value:this.value),
);
有人能帮我解决这个问题吗?而不是
Navigator.pushReplacementNamed
使用Navigator.pushReplacement
问题在于Navigator.pushReplacementNamed
用于导航到命名路由,并接受字符串作为其第二个参数,但您传递的是MaterialPage路由,这会导致错误
要了解有关命名路由的更多信息,您可以查看以下内容
{
"resource": "/d:/3rd Year/Group Project II/CrickDom/SLCricketLeaderBoad_MoblieApp/crick_dom/lib/home.dart",
"owner": "dart",
"code": {
"value": "argument_type_not_assignable",
"target": {
"$mid": 1,
"external": "https://dart.dev/tools/diagnostic-messages#argument_type_not_assignable",
"path": "/tools/diagnostic-messages",
"scheme": "https",
"authority": "dart.dev",
"fragment": "argument_type_not_assignable"
}
},
"severity": 8,
"message": "The argument type 'MaterialPageRoute<dynamic>' can't be assigned to the parameter type 'String'.",
"source": "dart",
"startLineNumber": 84,
"startColumn": 21,
"endLineNumber": 84,
"endColumn": 73,
"tags": []
}
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.17.3, on Microsoft Windows [Version 10.0.18362.900], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[√] Android Studio (version 3.6)
[√] VS Code (version 1.46.1)
[√] Connected device (1 available)
• No issues found!