flutter Navigator跳转报错

Navigator operation requested with a context that does not include a Navigator.
The context used to push or pop routes from the Navigator must be that of a widget that is a descendant of a Navigator widget.

这个报错是:因为你尝试使用 Navigator 操作(如 push 或 pop)的 BuildContext 并不在任何 Navigator 的子树中。这意味着你可能在一个没有正确 BuildContext 的地方执行了导航操作。

解决:在MyApp(你的首页)外层再套一个MaterialApp这样就能启用Navigator导航了。

另:如果你要使用Navigator.pushNamed(context, '/image_local_path');  路由可以注册在这个最顶层的MaterialApp中,代码如下:

void main() {// runApp(const MyApp());//TODO 要外包一个MaterialApp在起始页面,才可以使用Navigator来跳转runApp(//TODO 如果要加路由在这里,就不能用const来修饰// const MaterialApp(MaterialApp(routes: {'/image_local_path': (context) => const ImageLocalPathApp(),'/image_network': (context) => const ImageNetworkApp(),'/input_app_text_filed': (context) => const InputTextFiledApp(),'/input_app_form': (context) => const InputFormApp(),},title: "起始页面",home: const MyApp(),));
}class MyApp extends StatefulWidget {const MyApp({super.key});@override_MyAppState createState() => _MyAppState();
}class _MyAppState extends State<MyApp> {late bool isShowChild;//当widget第一次插入到widget树时会被调用,//对于每次各state对象,flutter framework 只会调用一次@overridevoid initState() {super.initState();isShowChild = true;debugPrint("parent initState......");}//初始化时,在initState()之后立刻调用//当一栏的InheritedWidget rebuild,会出发此方法被调用@overridevoid didChangeDependencies() {super.didChangeDependencies();debugPrint("parent didChangeDependencies......");}//绘制界面,当setState触发的时候会再次被调用@overrideWidget build(BuildContext context) {debugPrint("parent build ......");return MaterialApp(//主页面 Scaffold:Material Design布局结构的基础实现home: Scaffold(appBar: AppBar(title: const Text("Text")),//ScrollView是一个抽象类,所以不能直接用// body: ScrollView(body: SingleChildScrollView(physics: const BouncingScrollPhysics(),child: Column(mainAxisAlignment: MainAxisAlignment.center,crossAxisAlignment: CrossAxisAlignment.center,children: <Widget>[ElevatedButton(onPressed: () {setState(() {isShowChild = !isShowChild;});},child: isShowChild ? const Child() : const Text("演示清除Child"),),const SizedBox(height: 16), // 添加一些间距_textBody(),const Icon(Icons.star, size: 60, color: Colors.amber),const SizedBox(height: 16), // 添加一些间距const Text('Welcome!', style: TextStyle(fontSize: 24)),const SizedBox(height: 16), // 添加一些间距_richTextBody(),_defaultStyle(),flutterLogo(),icon(),Image.asset("assets/payment_black.png"),Image.network("https://www.baidu.com/img/bdlogo.png"),const CircleAvatar(//图片提供者 ImageProviderbackgroundImage: AssetImage("assets/head.jpg"),//半径,控制大小radius: 50.0,),ElevatedButton(onPressed: () {Navigator.pushNamed(context, '/image_local_path');// Navigator.push(//   context,//   MaterialPageRoute(//       builder: (context) => const ImageLocalPathApp()),// );},child: const Text('Go to Second Page'),),],),),),);}//状态改变的时候会调用该方法,比如调用了setState@overridevoid didUpdateWidget(covariant MyApp oldWidget) {super.didUpdateWidget(oldWidget);debugPrint("parent didUpdateWidget......");}//当state对象从树中被移除时,会调用此回调@overridevoid deactivate() {super.deactivate();debugPrint("parent deactivate......");}//当state对象从树中永久移除的时候调用;//通常在此回调中释放资源@overridevoid dispose() {super.dispose();debugPrint("parent dispose......");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/374457.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为HCIP Datacom H12-821 卷34

1.单选题 防火墙默认已经创建了一些安全区域,以下哪一个安全区域不是防火墙上默认存在的? A、Trust B、DMZ C、Internet D、Local 正确答案&#xff1a; C 解析&#xff1a; 防火墙默认情况下为我们提供了三个安全区域&#xff0c;分别是 Trust、DMZ和Untrust 2.判断题 …

(图文详解)小程序AppID申请以及在Hbuilderx中运行

今天小编给大家带来了如何去申请APPID&#xff0c;如果你是小程序的开发者&#xff0c;就必须要这个id。 申请步骤 到小程序注册页面&#xff0c;注册一个小程序账号 微信公众平台 填完信息后提交注册 会在邮箱收到 链接激活账号 确认。邮箱打开链接后&#xff0c;会输入实…

设备管理中的数据结构

一、有哪些数据结构属于设备管理数据结构 1. 设备控制表&#xff08;DCT&#xff09; “Device Control Table”的首字母缩写 2. 控制器控制表&#xff08;COCT&#xff09; “Controller Of Control Table”的首字母缩写。 3. 通道控制表&#xff08;CHCT&#xff09; “…

guided-diffusion 相比于improved-diffusion的sample增加的cond_fn()

目录 1、cond_fn()函数代码2、softmax与log_softmax函数 1、cond_fn()函数代码 def cond_fn(x, t, yNone):assert y is not Nonewith th.enable_grad():x_in x.detach().requires_grad_(True)logits classifier(x_in, t)log_probs F.log_softmax(logits, dim-1)selected l…

Transformer特辑

https://github.com/LongxingTan/Machine-learning-interview 模型结构 基本单元&#xff1a;token_embedding positional encoding, encoder, token_embedding positional encoding, decoderencoder: (self-attention, skip-connect, ln), (ffn, skip-connect, ln)decoder:…

顶顶通呼叫中心中间件实现随时启动和停止质检(mod_cti基于FreeSWITCH)

文章目录 前言联系我们拨号方案启动停止ASR执行FreeSWITCH 命令接口启动ASR接口停止ASR接口 通知配置cti.json配置质检结果写入数据库 前言 顶顶通呼叫中心中间件的实时质检功能是由两个模块组成&#xff1a;mod_asr 和 mod_qc。 mod_asr&#xff1a;负责调用ASR将用户们在通…

二、Qemu+Vscode调试内核

编译内核、busybox、配置Qemu参考&#xff1a;Qemu调试内核 一、修改启动脚本 1、修改Qemu启动脚本 #! /bin/shqemu-system-aarch64 \-machine virt,virtualizationtrue,gic-version3 \-nographic \-m size1024M \-cpu cortex-a72 \-smp 2 \-kernel Image \-drive formatraw…

写作遇到AI痕迹困扰?这里有降低AI痕迹的实用技巧

请问有没有什么免费的论文降重网站&#xff1f; 副本 一句“知网是什么”&#xff0c;我查重查了千百遍。天临六年五月&#xff0c;大家的论文差不多都到了查重的阶段。好不容易论文写&#xff08;shui&#xff09;完了&#xff0c;一看查重报告&#xff0c;满屏的红字让人心心…

Linux--线程ID封装管理原生线程

目录 1.线程的tid&#xff08;本质是线程属性集合的起始虚拟地址&#xff09; 1.1pthread库中线程的tid是什么&#xff1f; 1.2理解库 1.3phtread库中做了什么&#xff1f; 1.4线程的tid&#xff0c;和内核中的lwp 1.5线程的局部存储 2.封装管理原生线程库 1.线程的tid…

java设计模式(十五)命令模式(Command Pattern)

1、模式介绍&#xff1a; 命令模式&#xff08;Command Pattern&#xff09;是一种行为设计模式&#xff0c;其主要目的是将请求封装成一个对象&#xff0c;从而允许使用不同的请求、队列或者日志来参数化其他对象。这种模式使得命令的请求者和实现者解耦。 2、应用场景&…

服务启动何时触发 Nacos 的注册流程?

前言&#xff1a; 前面的系列文章让我们对 Nacos 有了一个基本了解&#xff0c;并知道了如何去试用 Nacos 作为注册中心和配置中心&#xff0c;本篇我们将从源码层面去分析 Nacos 的服务注册流程。 Nacos 系列文章传送门&#xff1a; Nacos 初步认识和 Nacos 部署细节 Naco…

C++基础学习笔记

1.命名空间(namespace) 1.什么是命名空间&命名空间的作用 1.在C/C中&#xff0c;变量、函数、类都是大量存在的&#xff0c;这些变量等的名称将都存在于全局作用域中&#xff0c;就会导致很多的命名冲突等。使用命名空间的目的就是对标识符的名称进行本地化&#xff0c;以…

短视频矩阵系统全解析:让获客变得更简单

随着数字媒体的迅猛发展&#xff0c;短视频已成为人们生活中不可或缺的一部分。对于企业而言&#xff0c;如何有效利用短视频平台吸引目标用户&#xff0c;实现高效获客&#xff0c;成为了一个亟待解决的问题。本文将全面解析短视频矩阵系统&#xff0c;带您领略其独特魅力&…

广度优先(BFS)

先看一道简单的题&#xff0c;迷宫问题&#xff1a; 洛谷P1746 离开中山路&#xff1a;P1746 离开中山路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<iostream> #include<cstring> #include<queue> #include <utility> #define N 1002 …

深度学习的数学PDF

链接: https://pan.baidu.com/s/1_jScZ7dcyAWGqbrad6bbCQ?pwd9gj9 提取码: 9gj9 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦

最简单的vue3组件之间传值

localStorage 是 HTML5 引入的一个 Web Storage API 的一部分&#xff0c;它允许网页在用户的浏览器上存储数据。localStorage 提供了一种持久化的本地存储方案&#xff0c;数据不会因为浏览器关闭而丢失&#xff0c;除非用户或脚本显式地删除它们。 localStorage 是一种非常实…

VSCode神仙插件——通义灵码 (AI编程助手)

1、安装&登录插件 安装时,右下角会有弹窗,让你登录该软件 同意登录后,会跳转浏览器页面 VSCode右下角出现如下图标即登录成功 2、使用 (1)点击左侧栏中的如下图标,打开通义灵码,可以进行智能问答 (2) 选中代码,右键 但是,上述所有的操作会在左侧问答栏中提供答案,并无法直…

认识并理解webSocket

今天逛牛客&#xff0c;看到有大佬分享说前端面试的时候遇到了关于webSocket的问题&#xff0c;一看自己都没见过这个知识点&#xff0c;赶紧学习一下&#xff0c;在此记录&#xff01; WebSocket 是一种网络通信协议&#xff0c;提供了全双工通信渠道&#xff0c;即客户端和服…

31. 1049. 最后一块石头的重量 II, 494.目标和,474.一和零

class Solution { public:int lastStoneWeightII(vector<int>& stones) {int sum 0;for(int stone : stones) sum stone;int bagSize sum /2;vector<int> dp(bagSize 1, 0);for(int i 0; i < stones.size(); i){ //遍历物品for(int j bagSize; j >…

LLMs的基本组成:向量、Tokens和嵌入

编者按&#xff1a;随着人工智能技术的不断发展&#xff0c;大模型&#xff08;语言、视觉&#xff0c;或多模态模型&#xff09;已成为当今AI应用的核心组成部分。这些模型具有处理和理解自然语言等模态输入的能力&#xff0c;推动了诸如聊天机器人、智能助手、自动文本生成等…