路由跳转的时候,怎么等待HarmonyOS 鸿蒙Next页面的返回

发布于 1周前 作者 vueper 来自 鸿蒙OS

路由跳转的时候,怎么等待HarmonyOS 鸿蒙Next页面的返回

如下关键代码
我想等待从登录页面返回后,再执行return isLoginSuccess来返回登录结果

但实际情况是:跳转到登录页面的同时,就执行return isLoginSuccess 了。

await router.pushUrl({
url: “pages/login/login_view”
})
let isLoginSuccess = (router.getParams() as Map<string, boolean>)[‘isLoginSuccess’] as boolean
return isLoginSuccess

4 回复
也许可以换个思路,使用eventHub,当登录成功时发送isLoginSuccess

使用 eventHub 

A 打开了 B 页面

然后 A 去监听 B 页面等否登录完成

可以通过使用@ohos.events.emitter来对想要的结果进行发射,然后接收后执行方法

在HarmonyOS鸿蒙Next中,路由跳转并等待页面返回通常涉及页面栈管理和异步处理。你可以使用router.pushUrl()进行页面跳转,并在目标页面处理完毕后,通过返回键或调用router.back()返回到原页面。由于页面跳转和返回是异步操作,你可能需要在目标页面设置回调或使用全局状态管理来同步状态。

确保在目标页面执行完必要操作后,通过router.back()触发返回。如果需要在原页面获取返回结果,可以考虑使用全局变量、事件总线或状态管理库来同步数据。

如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部