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 openCustomDialog 进入新页面后dialog出现在新页面
965浏览 • 1回复 待解决
HarmonyOS pop后马上push一个页面,会导致push页面失败
833浏览 • 1回复 待解决
HarmonyOS router跳转新页面之后使用function作为参数,想在新页面进行回调但是传参到新页面丢失
886浏览 • 1回复 待解决
HarmonyOS customDialog调用router.push启动新页面,会把customDialog关闭
762浏览 • 1回复 待解决
HarmonyOS Navigation在onPop回调中打开新页面异常
1358浏览 • 1回复 待解决
如何更新页面列表数据
8229浏览 • 1回复 待解决
customDialog调用router.push启动新页面,会把customDialog关闭,怎么实现在不关闭弹窗的前提下启动新页面
2821浏览 • 1回复 待解决
HarmonyOS 如何刷新页面内容
867浏览 • 1回复 待解决
HarmonyOS Navigation组件入栈打开新页面web内容显示异常问题
949浏览 • 1回复 待解决
HarmonyOS 数据改变未刷新页面
1533浏览 • 1回复 待解决
dialog跳转新页面返回后dialog关闭
1393浏览 • 1回复 待解决
HarmonyOS Navigation跳转新页面生命周期初始化问题
1219浏览 • 1回复 待解决
HarmonyOS crouter的pushUrl参数params传入class对象带参数为bigint类型,会导致无法push到新页面
1194浏览 • 1回复 待解决
怎么在进度条更新的时候刷新页面?
5825浏览 • 1回复 待解决
HarmonyOS 数组bleList,第一次更新页面正常显示,后面再次更新页面不刷新,只显示第一次的数据
1060浏览 • 1回复 待解决
HarmonyOS 如何先关闭键盘 再关闭弹窗
1588浏览 • 1回复 待解决
HarmonyOS Navigation子页面pop回到根页面,此时根页面如何获取子页面pop回来的参数
1221浏览 • 1回复 待解决
HarmonyOS 关于foreach循环更新页面数据时页面会闪烁问题
847浏览 • 1回复 待解决
createSubWindow 创建子窗口router新页面是子窗口承接?
1554浏览 • 1回复 待解决
HarmonyOS 从弹窗里点击按钮打开的页面,弹窗会盖在新页面上面
1481浏览 • 1回复 待解决
HarmonyOS 自定义弹窗在跳转页面不关闭时不遮挡新页面?
1212浏览 • 1回复 待解决
HarmonyOS pageTransition转场动画弹出新页面之前白色背景会盖住旧页面
669浏览 • 1回复 待解决
HarmonyOS 通过pushNamedRoute跳转到新页面,如何在页面返回的时候拿到结果
955浏览 • 1回复 待解决
HarmonyOS tabs以及嵌套tabs生命周期如何处理,比如前后台切换、打开新页面或从新页面回来的生命周期处理?
1102浏览 • 1回复 待解决
HarmonyOS CustomDialog 中使用 pushPathByName 跳转新页面之后页面和对话框层级问题
1437浏览 • 1回复 待解决
1、pop+push替换为replace:
2、延时操作:
3.Navigation强制新实例跳转。