HarmonyOS 3.1/4.0应用升级到HarmonyOS NEXT改动点

HarmonyOS 3.1/4.0应用升级到HarmonyOS NEXT改动点

💡 原文中文,约2200字,阅读约需6分钟。
📝

内容提要

本文讨论了从HarmonyOS 3.1/4.0升级到HarmonyOS NEXT(Developer Preview2)时的API兼容性问题,提供了获取路由参数和设置全局UI状态存储的代码示例及修改建议。

🎯

关键要点

  • 从HarmonyOS 3.1/4.0升级到HarmonyOS NEXT(Developer Preview2)时可能会遇到API兼容性问题。
  • 获取路由参数时,不能通过索引访问对象,需要将对象转换为Map。
  • 设置应用全局的UI状态存储时,方法名需要从大写改为小写。
  • 在类定义中,属性需要初始化,否则会报错。

延伸问答

从HarmonyOS 3.1/4.0升级到HarmonyOS NEXT时会遇到哪些API兼容性问题?

在升级过程中,可能会遇到不能通过索引访问对象的问题,以及属性未初始化导致的错误。

如何获取路由参数中的用户信息?

需要将对象转换为Map,使用代码:let userInfo: UserInfo = new Map(Object.entries(params))[`${Constants.PARAM_LOGGED_USER_INFO_KEY}`];

设置全局UI状态存储时需要注意什么?

方法名需要从大写改为小写,例如将AppStorage.SetOrCreate改为AppStorage.setOrCreate。

在类定义中,属性未初始化会导致什么问题?

如果属性未初始化,会报错,提示属性没有初始化且在构造函数中未明确赋值。

如何通过路由参数传递待发布的视频数据?

可以使用router.replaceUrl方法,传递params对象,例如params: { 'publishedVideoInfo': this.selectedVideoInfo }。

在HarmonyOS NEXT中,如何处理动态特性限制?

可以使用递归函数遍历对象的属性,并将它们添加到Map中,以适应动态特性限制。

➡️

继续阅读