Navigator operation requested with a context that does not include a
Navigator.
我用来导航的代码是:
onTap: () { Navigator.of(context).pushnamed('/settings'); },
我在我的应用程序中设置了一条路线,如下所示:
routes: <String,WidgetBuilder>{ '/settings': (BuildContext context) => new SettingsPage(),},
我试图使用stocks示例应用程序复制代码.我查看了Navigator和Route文档,但无法弄清楚如何使用Navigator包含上下文. onTap中使用的上下文是从传递给构建方法的参数中引用的:
class MyApp extends StatelessWidget { @overrIDe Widget build(BuildContext context) {
SettingsPage是一个类,如下所示:
class SettingsPage extends Navigator {Widget buildAppbar(BuildContext context) { return new Appbar( Title: const Text('Settings') );}@overrIDeWidget build(BuildContext context) { return new Scaffold( appbar: buildAppbar(context),); }}解决方法 我在Flutter应用程序中设置了这个简单的路由示例:
import 'package:Flutter/material.dart';voID main() { runApp(new MyApp());}class MyApp extends StatelessWidget { @overrIDe Widget build(BuildContext context) { return new MaterialApp( Title: 'Flutter Demo',home: new MyHomePage(),routes: <String,WidgetBuilder>{ '/settings': (BuildContext context) => new SettingsPage(),); }}class MyHomePage extends StatelessWidget { @overrIDe Widget build(BuildContext context) { return new Scaffold( appbar: new Appbar( Title: new Text('TestProject'),),body: new Center( child: new Flatbutton( child: const Text('Go to Settings'),onpressed: () => Navigator.of(context).pushnamed('/settings') ) ) ); }}class SettingsPage extends StatelessWidget { @overrIDe Widget build(BuildContext context) { return new Scaffold( appbar: new Appbar( Title: new Text('SettingsPage'),body: new Center( child: new Text('Settings') ) ); }}
请注意,SettingsPage扩展了StatelessWidget而不是Navigator.我无法重现您的错误.
此示例是否可以帮助您构建应用程序?如果我可以帮助你,请告诉我.
总结以上是内存溢出为你收集整理的flutter – 使用不包含导航器的上下文请求导航器 *** 作全部内容,希望文章能够帮你解决flutter – 使用不包含导航器的上下文请求导航器 *** 作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)