Error: A function expression can't have a name. Navigator.push(context, MaterialPageRoute(builder: context){ ^^^^^^^^^^^^^^^^^
Error: A function expression can't have a name. Navigator.push(context, MaterialPageRoute(builder: context){ ^^^^^^^^^^^^^^^^^
我在尝试使用 Navigator.of(context).push()
导航到另一个页面时遇到此异常:
lib/main.dart:20:41: 错误:函数表达式不能有名称。
Navigator.push(上下文,MaterialPageRoute(构建器:上下文){
^^^^^^^^^^^^^^^^^
lib/main.dart:20:68:错误:不是常量表达式。
Navigator.push(上下文,MaterialPageRoute(构建器:上下文){
^^^^^^^
lib/main.dart:20:66: 错误:非可选参数不能有默认值。
尝试删除默认值或使参数可选。
Navigator.push(上下文,MaterialPageRoute(构建器:上下文){
^
lib/main.dart: 错误:参数类型 'HomePage Function(dynamic)' 无法分配给参数类型 'Route'.
代码:
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")),
),
));
}
}
这是正确的使用方法 Navigator.of(context).push()
:
尝试将 onPressed
中的代码更改为以下内容
Navigator.of(context).push(MaterialPageRoute(
builder: (context){
return HomePage();
}
));
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return Demo();
},
),
);
构建器将一个函数作为输入,我们提供了一个匿名函数,其参数为当前 context,我们返回了我们想要推送的 class按下按钮时的堆栈。
我在尝试使用 Navigator.of(context).push()
导航到另一个页面时遇到此异常:
lib/main.dart:20:41: 错误:函数表达式不能有名称。 Navigator.push(上下文,MaterialPageRoute(构建器:上下文){ ^^^^^^^^^^^^^^^^^ lib/main.dart:20:68:错误:不是常量表达式。 Navigator.push(上下文,MaterialPageRoute(构建器:上下文){ ^^^^^^^ lib/main.dart:20:66: 错误:非可选参数不能有默认值。 尝试删除默认值或使参数可选。 Navigator.push(上下文,MaterialPageRoute(构建器:上下文){ ^ lib/main.dart: 错误:参数类型 'HomePage Function(dynamic)' 无法分配给参数类型 'Route'.
代码:
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")),
),
));
}
}
这是正确的使用方法 Navigator.of(context).push()
:
尝试将 onPressed
中的代码更改为以下内容
Navigator.of(context).push(MaterialPageRoute(
builder: (context){
return HomePage();
}
));
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return Demo();
},
),
);
构建器将一个函数作为输入,我们提供了一个匿名函数,其参数为当前 context,我们返回了我们想要推送的 class按下按钮时的堆栈。