问题
- 关于路由跳转页面遇到一个跳转失败的问题,log日志报“Navigator operation requested with a context that does not include a Navigator.”代码如下:
解决方案
- 把Scaffold段代码抽取出来:
探究BuildContext
- 上下文对象是整个APP Widget树结构中的Widget话柄,每个Wideget对应的都有属于自己的BuildContext。BuildContext还提供了一组方法,这些方法能够在StatelessWidget.build 函数中被当前的上下文环境调用。比如 Navigator.pushNamed(context, '/');
- 当部件Widget在StatelessWidget.build函数被返回时,这个部件会成为父部件。所以这意味着StatelessWidget.build方法中的context和函数内部部件Widegt的context不是同一个上下文。所以它们两个不同上下文能够调用的方法是有区别的。这就是这个问题关键的所在。
回顾问题
结尾
如有错误的地方欢迎指出,交流进步。
参考文献:https://docs.flutter.io/flutt...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。