HarmonyOS Navigation先pop再push新页面失败
页面栈流程如下:
A页面–pushDestinationByName–>B页面–pop回–>A页面–>收到返回后立刻pop关闭自己并且push—>C页面。如果A/B/C对应的都是同一个组件,用相同的name命名会发现C页面无法打开,不是相同name则没问题。
import { NavigationManager } from '@cmb/router';
import hilog from '@ohos.hilog';
@Component
export struct Page {
build() {
NavDestination() {
RelativeContainer() {
Button('跳转至测试页')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.alignRules({
center: { anchor: '__container__', align: VerticalAlign.Center },
middle: { anchor: '__container__', align: HorizontalAlign.Center }
})
}
.height('100%')
.width('100%')
.onClick(() => {
NavigationManager.getNavPathStack().pushDestinationByName('web', undefined)
})
}
.onAppear(() => {
hilog.debug(1, "NavigationTest", "onAppear0");
})
.onDisAppear(() => {
hilog.debug(1, "NavigationTest", "onDisAppear0");
})
.onShown(() => {
hilog.debug(1, "NavigationTest", "onShow0");
})
.onHidden(() => {
hilog.debug(1, "NavigationTest", "onHidden0");
})
.title("首页")
}
}
@Entry
@Component
struct Index {
@State message: string = '测试Navigation生命周期';
aboutToAppear() {
let modules: string[] = ["@cmb/module1"]
modules.forEach(async (value: string, index: number, array: string[]) => {
let ns: ESObject = await import(value);
ns.dynamicImport("");
})
}
@Builder
routerMap(builderName: string, param: object) {
// Obtain the WrappedBuilder object based on the module name, create a page through the builder interface, and import the param parameter.
NavigationManager.getBuilder(builderName).builder(param);
};
build() {
Navigation(NavigationManager.getNavPathStack()) {
NavDestination() {
Page().width("100%").height("100%")
}
.onShown(() => {
console.log("首页onShow")
})
.onHidden(() => {
console.log("首页onHidden")
})
.onAppear(() => {
console.log("首页onAppear")
})
}
.mode(NavigationMode.Stack)
.hideToolBar(true)
.hideBackButton(true)
.hideTitleBar(true)
.navDestination(this.routerMap)
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS pop后马上push一个页面,会导致push页面失败
79浏览 • 1回复 待解决
HarmonyOS openCustomDialog 进入新页面后dialog出现在新页面
69浏览 • 1回复 待解决
HarmonyOS router跳转新页面之后使用function作为参数,想在新页面进行回调但是传参到新页面丢失
57浏览 • 1回复 待解决
HarmonyOS Navigation在onPop回调中打开新页面异常
650浏览 • 1回复 待解决
customDialog调用router.push启动新页面,会把customDialog关闭,怎么实现在不关闭弹窗的前提下启动新页面
1913浏览 • 1回复 待解决
如何更新页面列表数据
6993浏览 • 1回复 待解决
HarmonyOS Navigation组件入栈打开新页面web内容显示异常问题
35浏览 • 1回复 待解决
HarmonyOS 数据改变未刷新页面
733浏览 • 0回复 待解决
HarmonyOS Navigation跳转新页面生命周期初始化问题
447浏览 • 1回复 待解决
dialog跳转新页面返回后dialog关闭
298浏览 • 1回复 待解决
怎么在进度条更新的时候刷新页面?
4712浏览 • 1回复 待解决
HarmonyOS Navigation子页面pop回到根页面,此时根页面如何获取子页面pop回来的参数
53浏览 • 1回复 待解决
HarmonyOS 数组bleList,第一次更新页面正常显示,后面再次更新页面不刷新,只显示第一次的数据
51浏览 • 1回复 待解决
createSubWindow 创建子窗口router新页面是子窗口承接?
589浏览 • 1回复 待解决
HarmonyOS 如何先关闭键盘 再关闭弹窗
457浏览 • 1回复 待解决
HarmonyOS pageTransition转场动画弹出新页面之前白色背景会盖住旧页面
23浏览 • 1回复 待解决
HarmonyOS 通过pushNamedRoute跳转到新页面,如何在页面返回的时候拿到结果
18浏览 • 1回复 待解决
HarmonyOS 自定义弹窗在跳转页面不关闭时不遮挡新页面?
17浏览 • 1回复 待解决
HarmonyOS tabs以及嵌套tabs生命周期如何处理,比如前后台切换、打开新页面或从新页面回来的生命周期处理?
311浏览 • 1回复 待解决
HarmonyOS 从弹窗里点击按钮打开的页面,弹窗会盖在新页面上面
435浏览 • 1回复 待解决
HarmonyOS IJKPlayer跳转新页面后播放后返回旧页面重新播放导致闪退
483浏览 • 1回复 待解决
HarmonyOS CustomDialog 中使用 pushPathByName 跳转新页面之后页面和对话框层级问题
640浏览 • 1回复 待解决
Web组件改变@State注释的url值不会加载新页面。
766浏览 • 1回复 待解决
1、pop+push替换为replace:
2、延时操作:
3.Navigation强制新实例跳转。