介绍
本示例主要介绍在使用Navigation实现页面跳转时,如何在跳转页面得到转入页面传的类对象的方法。实现过程中使用了第三方插件class-transformer,传递对象经过该插件的plainToClass方法转换后可以直接调用对象的方法,
效果图预览
使用说明
- 从首页进入本页面时,会传递一个类对象UserBookingInfo。点击“提交”按钮会调用该类对象的getUserInfo()方法,该方法弹出一个窗体显示用户的信息。
实现思路
- 在oh-package.json5中添加第三方插件class-transformer的依赖
"dependencies": {"class-transformer": "^0.5.1"}
- 在使用第三方插件class-transformer的页面导入class-transformer库。
import { plainToClass } from "class-transformer";
- 定义要传递的类
// 定义一个用户类export class UserBookingInfo {userName: string = '张山'; // 姓名userID: string = '332045199008120045'; // 证件号seatNo: string = '6A'; // 座位号constructor(name: string, id: string, seatNo: string) {this.userName = name;this.userID = id;this.seatNo = seatNo;}// 类的方法。getUserInfo() {AlertDialog.show({ message: `用户信息为 姓名: ${this.userName}, 身份证号: ${this.userID}, 座位号: ${this.seatNo}`, alignment: DialogAlignment.Center})}}
- 将传递过来的参数通过class-transformer的plainToClass方法转化为类对象。
let bookingString:string = this.pageStack.getParamByName('NavigationParameterTransfer')[0] as string;// 转化成普通对象let userBookingTmp: UserBookingInfo = JSON.parse(bookingString);// TODO:知识点:通过调用第三方插件class-transformer的plainToClass方法转换成类对象, 不进行转换直接使用userBookingTmp调用getUserInfo方法会造成crashthis.userBooking = plainToClass(UserBookingInfo, userBookingTmp);
高性能知识点
不涉及
工程结构&模块类型
navigationparametertransfer // har类型|---src\main\ets\components| |---UserBookingInfo.ets // 要传递的类对象|---src\main\ets\view| |---NavigationParameterTransferView.ets // 视图层-Navigation主页面
为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05
《鸿蒙开发学习手册》:
如何快速入门:https://qr21.cn/FV7h05
- 基本概念
- 构建第一个ArkTS应用
- ……
开发基础知识:https://qr21.cn/FV7h05
- 应用基础知识
- 配置文件
- 应用数据管理
- 应用安全管理
- 应用隐私保护
- 三方应用调用管控机制
- 资源分类与访问
- 学习ArkTS语言
- ……
基于ArkTS 开发:https://qr21.cn/FV7h05
- Ability开发
- UI开发
- 公共事件与通知
- 窗口管理
- 媒体
- 安全
- 网络与链接
- 电话服务
- 数据管理
- 后台任务(Background Task)管理
- 设备管理
- 设备使用信息统计
- DFX
- 国际化开发
- 折叠屏系列
- ……
鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH
鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH
1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向