官方文档推荐使用导航组件的形式进行页面管理,官方文档看了半天也没搞明白,查了各种文档才弄清楚。以下是具体实现方法:
在src/main/resources/base/profile下新建router_map.json文件
里边存放的是导航组件
{
"routerMap" : [
{
"name" : "AboutPage",
"pageSourceFile" : "src/main/ets/pages/AboutPage.ets",
"buildFunction" : "AboutPageBuilder",
"data": {
"description": ""
}
},
]
}
每个导航组件页面添加builder,这里的builder要跟router_map.json中的buildFunction对应。
@Builder
export function AboutPageBuilder(name: string, param: Object) {
AboutPage()
}
以下是页面跳转加传参实现方式
例如:A页面-->B页面,携带参数
前提是页面必须要使用Navigation或者NavDestination组件。
A页面
1、引入 @Consume('pathInfos') pathInfos: NavPathStack; 2、在要跳转的地方加上如下,具体传参按自己需求进行更改; const params:paramType = {deptId:this.deptId,deptCode: this.deptCode} as paramType this.pathInfos.pushPathByName(this.nextUrl,params)
B页面
// 获取导航跳转参数(是个数组) const arr = this.pathInfos.getParamByName('B页面的name名称') as paramType[];// 如果有多个A页面跳转到B页面,就获取B页面最后一个导航组件参数 this.routerData = arr[arr.length - 1] as paramType;