HarmonyOS鸿蒙Next中router跳转页面后,在返回之前的页面,之前的页面dialog弹框消失

HarmonyOS鸿蒙Next中router跳转页面后,在返回之前的页面,之前的页面dialog弹框消失 在A页面的aboutToAppear方法中自定义弹框提示,当用户点击弹框内容跳转到B页面(A页面没有调用CustomDialogController.close())。点击手机的返回键回到A页面,A页面的弹框消失了。为什么弹框会消失?怎么让弹框依然显示?

8 回复

大佬们,有其他优雅的解决方法没?

更多关于HarmonyOS鸿蒙Next中router跳转页面后,在返回之前的页面,之前的页面dialog弹框消失的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


解决方案不优雅,有更好的方案请大家@我

唉,太不优雅了。感觉这界面上的状态逻辑也得费老大劲了。

同问,是否要解决方法

记录弹框状态,在onpageshow的时候恢复,

在A页面的onPageShow方法再把弹框弹出来

我现在是这样改的,但是感觉不够优雅,页面有多种弹框,这样做还需要记录各弹框状态,

在HarmonyOS鸿蒙Next中,使用router跳转页面后,返回之前的页面时,如果之前的页面有dialog弹框,默认情况下弹框会消失。这是因为页面跳转会导致前一个页面的生命周期发生变化,dialog弹框是依赖于当前页面的状态,页面被重新加载或销毁时,弹框也会随之消失。

要解决这个问题,可以在页面返回时通过onPageShow生命周期回调重新显示dialog弹框,或者使用全局状态管理工具(如@ohos/data)来保存弹框的状态,确保页面返回时弹框能够恢复到之前的状态。

回到顶部