feature 模块不能设置系统路由表吗?feature 内使用 NavPathStack.pushPath 跳转路由闪退问题

发布于 1周前 作者 vueper 最后一次编辑是 5天前 来自 鸿蒙OS

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

回到顶部