feature 模块不能设置系统路由表吗?feature 内使用 NavPathStack.pushPath 跳转路由闪退问题
feature 模块不能设置系统路由表吗?feature 内使用 NavPathStack.pushPath 跳转路由闪退,如果不使用系统路由表而是 Navigation(){}.navDestination 则能正常跳转。
点击按钮,调用 pushPath 方法,应用闪退。
src/main/ets/pages/Index.ets
@Entry
@Component
struct Index {
@Provide pathInfos: NavPathStack = new NavPathStack()
build() {
Navigation(this.pathInfos) {
Text('Hello World')
Button('To Share')
.onClick(() => {
this.pathInfos.pushPath({ name: 'Share' })
})
}
.title('测试一下')
}
}
src/main/ets/pages/Share/Page.ets
@Builder
export function PageBuilder() {
Page()
}
@Component
struct Page {
build() {
Text('Share Page')
}
}
src/main/module.json5
{
"module": {
...
"routerMap": "$profile:router_map"
}
}
src/main/resources/base/profile/router_map.json
{
"routerMap": [
{
"name": "Share",
"pageSourceFile": "src/main/ets/pages/Share/Page.ets",
"buildFunction": "PageBuilder"
}
]
}
2 回复
从API version 12开始,Navigation支持使用系统路由表的方式进行动态路由。各业务模块(HSP/HAR)中需要独立配置route_map.json文件,HAR中如果没配置肯定是不行的
HarmonyOS 鸿蒙Next feature 模块设置系统路由表及跳转问题解答
HarmonyOS 鸿蒙Next中,feature 模块是可以设置系统路由表的,但需要确保API版本为12及以上,因为从该版本开始,Navigation组件才支持使用系统路由表进行动态路由。
关于NavPathStack.pushPath跳转路由闪退的问题,这可能是由于多种原因导致的。首先,请确保路由配置正确,包括目标页面的URL或路由名称。其次,检查是否已正确设置导航页面列表和页面栈信息。此外,如果是跨模块跳转,请确保已导入目标页面模块,并使用了正确的路由名称。
如果上述方法都无法解决问题,可能是由于系统或框架的bug导致的。此时,建议尝试清除缓存、重启设备或更新系统到最新版本。如果问题依旧没法解决,请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。