本示例主要介绍在使用Navigation实现页面跳转时,如何在跳转页面得到转入页面传的类对象的方法。实现过程中使用了第三方插件class-transformer,传递对象经过该插件的plainToClass方法转换后可以直接调用对象的方法,
使用说明
"dependencies": {
"class-transformer": "^0.5.1"
}
import { plainToClass } from "class-transformer";
// 定义一个用户类
export class UserBookingInfo {
userName: string = '张山'; // 姓名
userID: string = '332045199008120045'; // 证件号
date: string = '1月1日' // 日期
seatNo: number = 0; // 座位号
price: number = 200; // 价格
constructor(name: string, id: string, date: string) {
this.userName = name;
this.userID = id;
this.date = date;
}
// 获取随机座位号
generateRandSeatNo(): number {
this.seatNo = Math.floor(Math.random() * (200 - 1) + 1); // 获取200以内随机号
return this.seatNo;
}
}
let bookingString:string = this.pageStack.getParamByName('NavigationParameterTransfer')[0] as string;
// 转化成普通对象
let userBookingTmp: UserBookingInfo = JSON.parse(bookingString);
// TODO:知识点:通过调用第三方插件class-transformer的plainToClass方法转换成类对象, 不进行转换直接使用userBookingTmp调用getUserInfo方法会造成crash
this.userBooking = plainToClass(UserBookingInfo, userBookingTmp);
欢迎大家关注公众号<程序猿百晓生>,可以了解到以下内容:
1.OpenHarmony开发基础
2.OpenHarmony北向开发环境搭建
3.鸿蒙南向开发环境的搭建
4.鸿蒙生态应用开发白皮书V2.0 & V3.0
5.鸿蒙开发面试真题(含参考答案)
6.TypeScript入门学习手册
7.OpenHarmony 经典面试题(含参考答案)
8.OpenHarmony设备开发入门【最新版】
9.沉浸式剖析OpenHarmony源代码
10.系统定制指南
11.【OpenHarmony】Uboot 驱动加载流程
12.OpenHarmony构建系统--GN与子系统、部件、模块详解
13.ohos开机init启动流程
14.鸿蒙版性能优化指南
.......
不涉及
navigationparametertransfer // har类型
|---src\main\ets\components
| |---UserBookingInfo.ets // 要传递的类对象
|---src\main\ets\view
| |---NavigationParameterTransferView.ets // 视图层-Navigation主页面
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。