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

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

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

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

阅读 770
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进