首页 > 解决方案 > 错误:函数表达式不能有名称。Navigator.push(context, MaterialPageRoute(builder: context){ ^^^^^^^^^^^^^^^^^

问题描述

我在尝试使用以下命令导航到另一个页面时遇到此异常Navigator.of(context).push()

lib/main.dart:20:41:错误:函数表达式不能有名称。Navigator.push(context, MaterialPageRoute(builder: context){ ^^^^^^^^^^^^^^^^^ lib/main.dart:20:68: Error: Not a constant expression. Navigator.push (context, MaterialPageRoute(builder: context){ ^^^^^^^ lib/main.dart:20:66: Error: Non-optional parameters can't have a default value. 请尝试删除默认值或制作参数可选。Navigator.push(context, MaterialPageRoute(builder: context){ ^ lib/main.dart: 错误:参数类型“主页函数(动态)”不能分配给参数类型“路由”。

代码 :

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        title: 'Are You Present?',
        debugShowCheckedModeBanner: false,
        home: Scaffold(
          body: Center(
            child:
                FlatButton(onPressed: () {
                  Navigator.of(context).push(
                    MaterialPageRoute(builder: context){
                      return HomePage();
                    }
                  );
                }, child: Text("Press to Continue")),
          ),
        ));
  }
}

标签: flutterflutter-navigation

解决方案


这是正确的使用方法Navigator.of(context).push()

尝试onPressed使用以下代码更改其中的代码

Navigator.of(context).push(MaterialPageRoute(
            builder: (context){
              return HomePage();
            }
          ));

推荐阅读