我正在尝试在onTap中启动一个新屏幕,但是我收到以下错误:
请求导航器操作的上下文不包含导航器.
我用来导航的代码是:
onTap: () { Navigator.of(context).pushNamed('/settings'); },
Run Code Online (Sandbox Code Playgroud)
我在我的应用程序中设置了一条路线,如下所示:
routes: <String, WidgetBuilder>{
'/settings': (BuildContext context) => new SettingsPage(),
},
Run Code Online (Sandbox Code Playgroud)
我试图使用stocks示例应用程序复制代码.我查看了Navigator和Route文档,但无法弄清楚如何将上下文包含在Navigator中.的context在使用的onTap感从传递到构建方法中的参数引用:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
Run Code Online (Sandbox Code Playgroud)
SettingsPage是一个类,如下所示:
class SettingsPage extends Navigator {
Widget buildAppBar(BuildContext context) {
return new AppBar(
title: const Text('Settings')
);
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: buildAppBar(context),
);
}
}
Run Code Online (Sandbox Code Playgroud) flutter ×1