当前位置: 首页 > news >正文

鸿蒙 router.back()返回不到上个页面

1. 检查页面栈(Page Stack)

鸿蒙的路由基于页面栈管理,确保上一个页面存在且未被销毁。

  • 使用 router.getLength() 检查当前页面栈长度

    console.log(`当前页面栈长度: ${router.getLength()}`);
    • 如果结果为 1,说明没有上一个页面可返回。

    • 正常情况:从A页面跳转到B页面后,栈长度应为2。

  • 可能原因

    • 跳转时使用了 router.replaceUrl() 而非 router.pushUrl(),导致替换当前页面而非压栈。

    • 手动清除了页面栈(如使用 router.clear())。

2. 确认页面路径配置

在 config.json 中,每个页面必须正确注册: 

{"module": {"pages": ["pages/index/index",  // 页面A"pages/detail/detail" // 页面B]}
}
  • 路径必须完全匹配:跳转时使用的 url 参数需与 config.json 中的路径一致(如大小写敏感)。

 

3. 检查路由跳转方式

  • 使用 router.pushUrl 跳转页面

    router.pushUrl({url: 'pages/detail/detail'
    }).catch(err => {console.error('跳转失败:', err);
    });
  • 如果使用 router.replaceUrl,上一个页面会被替换,导致无法返回。

4. 监听页面返回事件

在目标页面(希望返回的页面)中,检查是否覆盖了 onBackPress 生命周期函数:

onBackPress() {// 如果此处返回 true,会阻止默认返回行为// 需要确认是否有自定义逻辑return false; // 必须返回 false 以允许默认返回
}

5. 捕获路由异常

为 router.back() 添加错误处理,获取具体原因:

router.back().catch(err => {console.error('返回失败:', err);// 输出示例:返回失败: {"code":100001, "message":"Page stack is empty."}
});

6. 检查页面生命周期

确保上一个页面未被销毁:

  • 如果跳转时传递了 params: { replace: true },可能导致页面栈被修改。

  • 避免在跳转后手动调用 router.clear()

7. 验证代码示例

正确跳转和返回代码:
// 从页面A跳转到页面B(压栈)
router.pushUrl({url: 'pages/detail/detail'
}).then(() => {console.log('跳转成功');
}).catch(err => {console.error('跳转失败:', err);
});// 在页面B中返回
router.back();

8. 其他可能原因

  • 系统版本兼容性:确保鸿蒙SDK版本支持 router.back()

  • 路径动态参数问题:如果路径包含动态参数(如 pages/detail?id=123),确保参数拼接正确。

  • 页面重复注册:检查 config.json 中是否重复注册同一页面。


总结解决方案

  1. 确保使用 router.pushUrl 跳转

  2. 检查 config.json 中的页面路径

  3. 验证页面栈长度是否大于1

  4. 处理 router.back() 的异常捕获

  5. 检查 onBackPress 生命周期是否阻止返回

如果问题仍存在,建议提供路由跳转相关代码片段及 config.json 配置,以便进一步分析。

 

相关文章:

鸿蒙 router.back()返回不到上个页面

1. 检查页面栈(Page Stack) 鸿蒙的路由基于页面栈管理,确保上一个页面存在且未被销毁。 使用 router.getLength() 检查当前页面栈长度: console.log(当前页面栈长度: ${router.getLength()}); 如果结果为 1,说明没有上…...

深度学习模型蒸馏技术的发展与应用

随着人工智能技术的快速发展,大型语言模型和深度学习模型在各个领域展现出惊人的能力。然而,这些模型的规模和复杂度也带来了显著的部署挑战。模型蒸馏技术作为一种优化解决方案,正在成为连接学术研究和产业应用的重要桥梁。本文将深入探讨模…...

STM32G0B1 ADC DMA normal

目标 ADC 5个通道,希望每1秒采集一遍; CUBEMX 配置 添加代码 #define ADC1_CHANNEL_CNT 5 //采样通道数 #define ADC1_CHANNEL_FRE 3 //单个通道采样次数,用来取平均值 uint16_t adc1_val_buf[ADC1_CHANNEL_CNT*ADC1_CHANNEL_FRE]; //传递…...

<tauri><rust><GUI>基于rust和tauri,在已有的前端框架上手动集成tauri示例

前言 本文是基于rust和tauri,由于tauri是前、后端结合的GUI框架,既可以直接生成包含前端代码的文件,也可以在已有的前端项目上集成tauri框架,将前端页面化为桌面GUI。 环境配置 系统:windows 10 平台:visu…...

模型 冗余系统(系统科学)

系列文章分享模型,了解更多👉 模型_思维模型目录。为防故障、保运行的备份机制。 1 冗余系统的应用 1.1 冗余系统在企业管理中的应用-金融行业信息安全的二倍冗余技术 在金融行业,信息安全是保障业务连续性和客户资产安全的关键。随着数字化…...

Deepseek部署的模型参数要求

DeepSeek 模型部署硬件要求 模型名称参数量显存需求(推理)显存需求(微调)CPU 配置内存要求硬盘空间适用场景DeepSeek-R1-1.5B1.5B4GB8GB最低 4 核(推荐多核)8GB3GB低资源设备部署,如树莓派、旧…...

AI-学习路线图-PyTorch-我是土堆

1 需求 PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】_哔哩哔哩_bilibili PyTorch 深度学习快速入门教程 配套资源 链接 视频教程 https://www.bilibili.com/video/BV1hE411t7RN/ 文字教程 https://blog.csdn.net/xiaotudui…...

[LeetCode]day17 349.两个数组的交集

https://leetcode.cn/problems/intersection-of-two-arrays/description/ 题目描述 给定两个数组 nums1 和 nums2 ,返回它们的交集。 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序 。 示例 1: 输入:nums1 [1,2,2,1…...

axios 发起 post请求 json 需要传入数据格式

• 1. axios 发起 post请求 json 传入数据格式 • 2. axios get请求 1. axios 发起 post请求 json 传入数据格式 使用 axios 发起 POST 请求并以 JSON 格式传递数据是前端开发中常见的操作。 下面是一个简单的示例,展示如何使用 axios 向服务器发送包含 JSON 数…...

linux交叉编译paho-mqtt-c

下载源代码: https://github.com/eclipse-paho/paho.mqtt.c.git 编译: 如果mqtt不需要SSL安全认证,可以直接执行(注意把编译工具链路径改成自己的) cd paho.mqtt.c-1.3.13/ mkdir install # 创建安装目录 mkdir…...

feign Api接口中注解问题:not annotated with HTTP method type (ex. GET, POST)

Bug Description 在调用Feign api时,出现如下异常: java.lang.IllegalStateException: Method PayFeignSentinelApi#getPayByOrderNo(String) not annotated with HTTPReproduciton Steps 1.启动nacos-pay-provider服务,并启动nacos-pay-c…...

安装指定版本的pnpm

要安装指定版本的 pnpm&#xff0c;可以使用以下方法&#xff1a; 方法 1: 使用 pnpm 安装指定版本 你可以通过 pnpm 的 add 命令来安装指定版本&#xff1a; pnpm add -g pnpm<版本号>例如&#xff0c;安装 pnpm 的 7.0.0 版本&#xff1a; pnpm add -g pnpm7.0.0方法…...

【系统设计】Spring、SpringMVC 与 Spring Boot 技术选型指南:人群、场景与实战建议

在 Java 开发领域&#xff0c;Spring 生态的技术选型直接影响项目的开发效率、维护成本和长期扩展性。然而&#xff0c;面对 Spring、SpringMVC 和 Spring Boot 这三个紧密关联的框架&#xff0c;开发者常常陷入纠结&#xff1a;该从何入手&#xff1f;如何根据团队能力和业务需…...

常用数据结构之String字符串

字符串 在Java编程语言中&#xff0c;字符可以使用基本数据类型char来保存&#xff0c;在 Java 中字符串属于对象&#xff0c;Java 提供了 String 类来创建和操作字符串。 操作字符串常用的有三种类&#xff1a;String、StringBuilder、StringBuffer 接下来看看这三类常见用…...

深入Linux系列之进程地址空间

深入Linux系列之进程地址空间 1.引入 那么在之前的学习中&#xff0c;我们知道我们创建一个子进程的话&#xff0c;我们可以在代码层面调用fork函数来创建我们的子进程&#xff0c;那么fork函数的返回值根据我们当前所处进程的上下文是返回不同的值&#xff0c;它在父进程中返…...

HAL库外设宝典:基于CubeMX的STM32开发手册(持续更新)

目录 前言 GPIO&#xff08;通用输入输出引脚&#xff09; 推挽输出模式 浮空输入和上拉输入模式 GPIO其他模式以及内部电路原理 输出驱动器 输入驱动器 中断 外部中断&#xff08;EXTI&#xff09; 深入中断&#xff08;内部机制及原理&#xff09; 外部中断/事件控…...

网络安全-HSTS

什么是HSTS&#xff1f; HTTP严格传输安全协议&#xff08;HTTP Strict Transport Security&#xff0c;简称&#xff1a;HSTS&#xff09; 是互联网安全策略机制。网站可以选择使用HSTS策略&#xff0c;来让浏览器强制使用HTTPS与网站进行通信&#xff0c;以减少会话劫持风险。…...

全程Kali linux---CTFshow misc入门(38-50)

第三十八题&#xff1a; ctfshow{48b722b570c603ef58cc0b83bbf7680d} 第三十九题&#xff1a; 37换成1&#xff0c;36换成0&#xff0c;就得到长度为287的二进制字符串&#xff0c;因为不能被8整除所以&#xff0c;考虑每7位转换一个字符&#xff0c;得到flag。 ctfshow{5281…...

HarmonyOS:时间日期国际化

一、使用场景 在不同的国家和文化中&#xff0c;时间和日期格式的表示方法有所不同&#xff0c;使用惯例的不同点包括&#xff1a;日期中年月日的顺序、时间中时分秒的分隔符等。若应用中需展示时间日期&#xff0c;要确保界面以合适的方式显示&#xff0c;以便用户能够理解。 …...

使用miniforge代替miniconda

conda作为Python数据科学领域的常用软件&#xff0c;是对Python环境及相关依赖进行管理的经典工具&#xff0c;通常集成在anaconda或miniconda等产品中供用户日常使用。 但长久以来&#xff0c;conda在很多场景下运行缓慢卡顿、库解析速度过慢等问题也一直被用户所诟病&#xf…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...