Flutter 颤振页面路由

Flutter 颤振页面路由,flutter,routes,Flutter,Routes,我想从主页导航到登录页面。我已经实现了一些代码。但这不是工作。运行代码时出错。MaterialPage路由(生成器:(上下文)=>LoginPage());此行出现错误。无论我试过多少次,我都无法解决这个问题。这是完整的代码段 return Scaffold( appBar: new AppBar( title: new Text("Home"), backgroundColor: Colors.grey[500],

我想从主页导航到登录页面。我已经实现了一些代码。但这不是工作。运行代码时出错。MaterialPage路由(生成器:(上下文)=>LoginPage());此行出现错误。无论我试过多少次,我都无法解决这个问题。这是完整的代码段

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!