router.getParams使用问题

页面A跳转到页面B, 页面B 将数据通过 router.back({url:页面A, params: 数据}) 回传给页面A想问一下,回退到页面A 如何(什么时机)通过router.getParams 获取回传参数比较合适,有尝试onPageShow周期函数去获取,但是如果不清楚已经使用过的参数,类似息屏再点亮触发onPageShow就会又读取回传参数导致一些同步问题。或者说如何在使用完回传参数后,将这个参数清除掉?或者有什么周期函数只对应页面跳转触发?

HarmonyOS
2024-10-14 11:31:36
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

router.back携带参数返回上一个页面时,可以在目标页面中,在需要获取参数的位置调用router.getParams()方法即可,例如在onPageShow()生命周期回调中:

import router from '@ohos.router';  
onPageShow() {  
  const params:Record<string,Object> = {'':router.getParams()}; // 获取传递过来的参数对象  
  const info:Object = params['']; // 获取info属性的值  
}

router.getParams()里的数据不能被清空,该数据可能是历史某次遗留的,可以用router.clear()清理。

可以用页面状态存储LocalStorage来更新要存储的页面状态,可以给LocalStorage修饰的变量赋值, 回退到页面a的时候就不会重复获取到b页面的值,以下是参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-localstorage-V5

分享
微博
QQ
微信
回复
2024-10-14 15:52:40
相关问题
HarmonyOS router.getParams()数据传递
494浏览 • 1回复 待解决
HarmonyOS router 返回问题
351浏览 • 1回复 待解决
HarmonyOS router跳转问题
520浏览 • 2回复 待解决
router 路由跳转相关问题
353浏览 • 1回复 待解决
HarmonyOS router若干问题
22浏览 • 1回复 待解决
HarmonyOS router路由跳转问题
491浏览 • 0回复 待解决
router传递hashmap参数问题
1571浏览 • 1回复 待解决
HarmonyOS router传参获取问题
537浏览 • 1回复 待解决
HarmonyOS router路由路径的问题
553浏览 • 1回复 待解决
如何在onPageShow中区分getParams来源
1901浏览 • 1回复 待解决
HarmonyOS router.back返回页面问题
45浏览 • 1回复 待解决
HarmonyOS 关于router.back问题的咨询
460浏览 • 1回复 待解决
HarmonyOS router打开har下页面的问题
401浏览 • 1回复 待解决
HarmonyOS Navigation和router使用场景
402浏览 • 2回复 待解决
关于router和Navigation要选择哪个使用
708浏览 • 2回复 待解决
router.pushUrl 无法使用Map类型参数
499浏览 • 1回复 待解决