HarmonyOS 鸿蒙Next replaceNamedRoute 怎么实现跳转目标页?

HarmonyOS 鸿蒙Next replaceNamedRoute 怎么实现跳转目标页? 如图使用replaceUrl会有警告!然后发现replaceNamedRoute,但是这个方法跳转目标页是空白的,

不知道是不是因为预览器的原因?

cke_3157.png

cke_597.png


更多关于HarmonyOS 鸿蒙Next replaceNamedRoute 怎么实现跳转目标页?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

10 回复
  1. replaceNamedRouter 命令路由需要在 Entry 里面声明 name,以及 import 这个 page

  2. 警告的意思这个 api 可能在部分设备上用不了,这里是和 api 级别有关系

更多关于HarmonyOS 鸿蒙Next replaceNamedRoute 怎么实现跳转目标页?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


【在 Entry 里面声明 name】这个可以做到,

但是【以及 import 这个 page】这个是怎么导入,导入不使用它,不也相当于白导入了嘛~

我在评论区放了图~,

import router from ‘@ohos/router’; import(’…/pages/Index’) as IndexPage;

@Entry @Component struct IndexComponent {

build() { Column() { Button(‘Click’) .onClick(() => { router.replaceNamedRoute({ name: ‘myIndex’ }, router.RouterMode.Standard); }) } .width(‘100%’) .height(‘100%’) } }

啊啊!成功啦!谢谢
原来它是挎包使用的!
因为我在使用replaceUrl的时候有警告,我就看到了这个API,

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

![cke_130.png](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/706/269/612/0030086000706269612.20240506143222.12429000095607345939505252146595:50001231000000:2800:9CD9ECA7FB07797D820587F13A18B0FCD9A14A3B26B2869E809979745160C44D.png)

![cke_266.png](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/706/269/612/0030086000706269612.20240506143239.71456588330004979720668164655714:50001231000000:2800:EC2D433B2A3461A7D46A3A3FDFDA68EA76CDC0C027738CF8556BD493FD06FB07.png)

![cke_887.png](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/706/269/612/0030086000706269612.20240506143251.92091160474870252650730539201388:50001231000000:2800:A24C108BC9D815B030F84067ED5DE950AB4C812A017E5FF0DFFA96CF61EA2508.png)
![cke_299.png](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/706/269/612/0030086000706269612.20240327083005.18642160984273905551305719442925:50001231000000:2800:04EB982A632F3AF926D371B68F8EC74D85D3C0E42BBB5B62D28363335CDA1279.png)

![cke_813.png](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/706/269/612/0030086000706269612.20240327083027.58310130543584673881721909117701:50001231000000:2800:F3F27B82D0BFEC5F1DBFD9FB45A2D2FEEE1330345E4FAD3C8548427BB38E4040.png)

要先导包,再到目标页声明routeName, 且导包是在跳转页面,把目标页导入进来,

在HarmonyOS中,replaceNamedRoute方法用于替换当前页面的路由,并跳转到指定的目标页面。该方法通常在需要替换当前页面而不保留历史记录的场景下使用。

replaceNamedRoute的使用示例如下:

import router from '@ohos.router';

// 定义目标页面的路由名称
const targetRouteName = 'TargetPage';

// 使用replaceNamedRoute跳转到目标页面
router.replaceNamedRoute({
  name: targetRouteName,
  params: {
    // 可选,传递的参数
    key: 'value'
  }
}).then(() => {
  console.log('页面跳转成功');
}).catch((err) => {
  console.error('页面跳转失败', err);
});

在上述代码中,replaceNamedRoute方法接收一个对象作为参数,该对象包含nameparams属性。name属性指定目标页面的路由名称,params属性是可选参数,用于传递数据到目标页面。

需要注意的是,replaceNamedRoute会替换当前页面的路由,因此用户无法通过返回按钮回到之前的页面。

在HarmonyOS(鸿蒙Next)中,replaceNamedRoute 用于替换当前页面栈中的页面,并跳转到目标页面。你可以通过以下步骤实现:

  1. 定义路由:在 pages 目录下的 config.json 中定义路由名称和目标页面路径。
  2. 调用方法:在代码中使用 router.replaceNamedRoute 方法,传入目标页面的路由名称和可选参数。

示例代码:

import router from '@ohos.router';

router.replaceNamedRoute({
  name: 'TargetPage', // 目标页面路由名称
  params: { key: 'value' } // 可选参数
});

这样,当前页面会被替换为目标页面,且页面栈不会增加新记录。

回到顶部