HarmonyOS 鸿蒙Next如何获取router push的所有page
HarmonyOS 鸿蒙Next如何获取router push的所有page 有一个需求,根据接口返回参数 跳转 到某一个页面,接口会请求多次。所以在跳转之前需要判断之前是否已经push过这个page了。目前想法是获取当前router push的所有页面,但是不知道代码如何实现,请问有没有知道具体代码的
这是官方文档,应该是你需要的
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-router-V5#ZH-CN_TOPIC_0000001847210792__routerstate
let options:Array<router.RouterState> = router.getStateByUrl('pages/index');
for (let i: number = 0; i < options.length; i++) {
console.log('index = ' + options[i].index);
console.log('name = ' + options[i].name);
console.log('path = ' + options[i].path);
console.log('params = ' + options[i].params);
}
更多关于HarmonyOS 鸿蒙Next如何获取router push的所有page的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
多谢回答,暂时还没这个权限,只能用其他方法了,
换Navigation,
还没权限看这个文档,等有权限了再换这个,
之前问官方 说是这种方法之后不维护了 建议用Navigation
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17
姓名: John Doe
职位: 软件工程师
简介: 拥有超过10年软件开发经验,擅长Java和Python。
API 9 文档:router.getState()
可获取 当前页面在栈中的索引号。
不过若是需求是不想重复加载某个页面,则 @醉心晴抒 所述单例模式跳转即可解决。
姓名:张三 职位:软件工程师 简介:具有五年软件开发经验,熟悉Java和Python。
大佬 我又看到你了,
别叫我大佬啊,真承受不起/捂脸,
多谢回答,这个目前看来可以满足,
在HarmonyOS(鸿蒙)Next中,获取router.push
的所有页面可以通过Router
模块的getPages
方法实现。getPages
方法返回当前路由栈中的所有页面信息,包括页面路径和参数。具体实现如下:
import router from '@ohos.router';
// 获取当前路由栈中的所有页面
let pages = router.getPages();
console.log(pages);
getPages
方法返回的是一个数组,数组中的每个元素代表一个页面对象,包含以下属性:
path
: 页面的路径。params
: 页面传递的参数。
例如,假设当前路由栈中有两个页面,pages
数组可能如下:
[
{
"path": "pages/index",
"params": {}
},
{
"path": "pages/detail",
"params": {
"id": "123"
}
}
]
通过遍历pages
数组,可以获取所有页面的路径和参数信息。
在HarmonyOS(鸿蒙Next)中,获取router.push
跳转的所有页面可以通过Router
模块的getPages
方法实现。该方法返回当前路由栈中的所有页面信息。示例代码如下:
import router from '@ohos.router';
// 获取当前路由栈中的所有页面
let pages = router.getPages();
console.log(pages); // 输出当前路由栈中的页面信息
getPages
返回的是一个数组,包含当前路由栈中的所有页面对象,每个页面对象包含页面路径等信息。