HarmonyOS onPageShow中存在异步方法,其和子组件aboutToAppear加载顺序问题

onPageShow中编写了异步方法获取持久化缓存信息,子组件的aboutToAppear是否在onPageShow异步方法执行完后执行?用

户在首页点击区划站点,跳转区划页面,选择区划后,持久化缓存,跳转回首页。

因区划可能变化,需要重新加载数据,目前在onPageShow中调用preferences.getPreferences异步获取缓存的区划信息后给@Provide regionCache 赋值。子组件aboutToAppear中通过@Consume拿到区划值。

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

1、正常的业务场景中,优先执行aboutToAppear,但是当aboutToAppear中存在异步方法时,此时会先去执行onpageshow中的逻辑,在回头执行aboutToAppear中的异步方法,所以一般来说是拿不到数据的。

2、上述场景中,从区划页面拿到数据后返回首页,返回首页使用的是什么跳转方法,如果是router.back(),则不会再次触发aboutToAppear,仅有onpageshow会执行。

3、通过preferences.getPreferences的方式获取重新数据时,可以在首页使用@Watch监听 regionCache 变量的变化,regionCache变化时触发监听事件,监听事件中可以写一些UI刷新和业务逻辑。

@Watch装饰器存在一些限制条件,使用时请详细阅读@Watch的使用方法和限制条件:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-watch-V5

分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS WebController存在调用顺序问题
366浏览 • 1回复 待解决
弹窗组件无法进入onPageShow方法
2160浏览 • 1回复 待解决
ArkTS异步机制与执行顺序
1584浏览 • 1回复 待解决
HarmonyOS Image组件能调用异步方法吗?
304浏览 • 1回复 待解决