您的位置:首页 > 娱乐 > 明星 > HarmonyOS 3.1/4.0应用升级到HarmonyOS NEXT改动点

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

2025/2/26 3:00:35 来源:https://blog.csdn.net/kkkloveyou/article/details/141125285  浏览:    关键词:HarmonyOS 3.1/4.0应用升级到HarmonyOS NEXT改动点

在 “2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”(https://coding.imooc.com/class/843.html)视频课程中,因为讲师在该课程授课时是使用的HarmonyOS 3.1/4.0应用(API 9),如果部分学员采用了最新的HarmonyOS NEXT API,此时就会遇到API兼容性的问题。

本文整理了从HarmonyOS 3.1/4.0应用升级到HarmonyOS NEXT(Developer Preview2)改动点。

获取路由参数

// 从路由参数中获取用户信息
let userInfo: UserInfo = params[`${Constants.PARAM_LOGGED_USER_INFO_KEY}`];

报错:Indexed access is not supported for fields (arkts-no-props-by-index) <ArkTSCheck>

不应该通过索引来访问对象

错误原因:在 HarmonyOS Next 开发中,如果你不能使用 TypeScript 或 JavaScript 的标准库,包括 hasOwnProperty 和通过 []. 获取对象的属性值,那么你需要寻找其他方法来将对象转换为 Map。由于 ArkTS 对动态特性的限制,你可以考虑使用递归函数来遍历对象的属性,并将它们添加到 Map 中。

改为

// 从路由参数中获取用户信息
let userInfo: UserInfo = new Map(Object.entries(params))[`${Constants.PARAM_LOGGED_USER_INFO_KEY}`];
router.replaceUrl({url: 'pages/Index',// 通过路由参数,传递待发布的视频数据params: {[`${Constants.PARAM_PUBLISHED_VIDEO_INFO_KEY}`]: this.selectedVideoInfo}
})

报错:Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names) <ArkTSCheck>

改为

router.replaceUrl({url: 'pages/Index',// 通过路由参数,传递待发布的视频数据params: {'publishedVideoInfo': this.selectedVideoInfo}
})

设置应用全局的UI状态存储

AppStorage.SetOrCreate('UserInfo.username', userInfo.username);

改为

AppStorage.setOrCreate('UserInfo.username', userInfo.username);
let username: string = AppStorage.Get('UserInfo.username');

改为

let username: string = AppStorage.get('UserInfo.username') as string;

不要导出@Entry

@Entry
@Component
export struct VideoPublishPage {
@Entry
@Component
struct VideoPublishPage {

Property ‘videoId’ has no initializer and is not definitely assigned in the constructor.

export class VideoInfo {// 视频IDvideoId: number;
 Property 'videoId' has no initializer and is not definitely assigned in the constructor.

改为

export class VideoInfo {// 视频IDvideoId: number = 0;

参考资料

  • 本文同步至:https://waylau.com/changes-upgrade-from-3-1-4-0-to-harmonyos-next-developer-preview2/
  • 《跟老卫学HarmonyOS开发》 开源免费教程,https://github.com/waylau/harmonyos-tutorial
  • 《鸿蒙HarmonyOS手机应用开发实战》(清华大学出版社)
  • 《鸿蒙HarmonyOS应用开发从入门到精通战》(北京大学出版社)
  • “鸿蒙系统实战短视频App 从0到1掌握HarmonyOS”(https://coding.imooc.com/class/674.html)
  • 《鸿蒙HarmonyOS应用开发入门》(清华大学出版社)
  • “2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”(https://coding.imooc.com/class/843.html)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com