HarmonyOS 开发-Navigation页面跳转对象传递案例

介绍

本示例主要介绍在使用Navigation实现页面跳转时,如何在跳转页面得到转入页面传的类对象的方法。实现过程中使用了第三方插件class-transformer,传递对象经过该插件的plainToClass方法转换后可以直接调用对象的方法,

效果图预览

使用说明

  1. 从首页进入本页面时,会传递一个类对象UserBookingInfo。点击“提交”按钮会调用该类对象的getUserInfo()方法,该方法弹出一个窗体显示用户的信息。

实现思路

  1. 在oh-package.json5中添加第三方插件class-transformer的依赖
   "dependencies": {"class-transformer": "^0.5.1"}
  1. 在使用第三方插件class-transformer的页面导入class-transformer库。
   import { plainToClass } from "class-transformer";
  1. 定义要传递的类
   // 定义一个用户类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})}}
  1. 将传递过来的参数通过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

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/803425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pta L1-011 A-B

L1-011 A-B 分数 20 全屏浏览 切换布局 作者 陈越 单位 浙江大学 本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。 输入格式: 输入在2行中先后给出…

YOLOv9改进策略 :小目标 | 新颖的多尺度前馈网络(MSFN) | 2024年4月最新成果

💡💡💡本文独家改进:多尺度前馈网络(MSFN),通过提取不同尺度的特征来增强特征提取能力,2024年最新的改进思路 💡💡💡创新点:多尺度前馈网络创新十足,抢先使用 💡💡💡如何跟YOLOv8结合:1)放在backbone后增强对全局和局部特征的提取能力;2)放在detect…

蝙蝠优化算法(bat optimization algorithm)

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 算法背景 蝙蝠优化算法(Bat Algorithm)是一种基于群体智能的优化算法,它的灵感来源于蝙蝠捕食时的回声定位行…

Linux(Ubuntu)中创建【samba】服务,用于和Windows系统之间共享文件

目录 1.先介绍一下什么是Samba 2.安装,配置服务 安装 配置(smb.conf) 配置用户 3.出现的问题(Failed to add entry for user XXXX) 4.创建文件夹 5.windows访问 6.其他 Samba【服务状态】查看 Samba服务启动…

面试必问 - CSS 中元素居中小技巧

在网页设计中,居中是一个至关重要的布局技巧,能够确保你的页面在不同设备和屏幕尺寸上呈现出优雅的样式。 在这篇文章中,将介绍一些 CSS 居中的基本技巧,适用于各种场景。 1. 水平居中 文本水平居中 通过设置 text-align: cen…

Training - Kubeflow 的 PyTorchJob 配置 DDP 分布式训练 (ncclInternalError)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/137569332 Kubeflow 的 PyTorchJob 是 Kubernetes 自定义资源,用于在 Kubernetes 上运行 PyTorch 训练任务,是 K…

网格矢量如何计算莫兰指数

网格矢量如何计算莫兰指数 引言 遇到一个问题,计算矢量网格的莫兰指数。 概念解释 莫兰指数 莫兰指数(Moran’s Index)是一种空间自相关指标,用于衡量空间数据的相似性和聚集程度。它可以用来描述一个区域与其邻近区域之间的属…

MySQL之函数:字符串函数、日期函数、数值函数、流程函数

字符串函数:用于对文本数据进行操作和处理 CONCAT:用于将多个字符串连接成一个字符串。 SELECT CONCAT(Hello, , World); -- 输出: Hello WorldSUBSTRING:用于截取字符串的子串。包前不包后,从1开始 SELECT SUBSTRING(MySQL, 1, …

这4大流氓软件,以后看见记得绕着走。

第一个,2345浏览器。时不时弹出广告,还会自动修改你的默认主页,并且很难修改回去。 第二个,搜狗输入法。别以为它打字很方便,实际上弹广告也很方便。 第三个,快压。解压不仅给你弹广告,还能让…

TCP-IP详解卷一:协议——阅读总结

该内容适合程序员查看 第1章 概述 1.1 引言 WAN全称是 Wide Area Network,中文名为广域网。 LAN全称是 Local Area Network,中文名为局域网。 1.2分层 ICP/IP协议族通常被认为是一个四层协议系统 分层协议应用层Telnet、FTP和e-mail运输层TCP和UDP网…

在Terraform中定义模块依赖关系

在Terraform中定义模块依赖关系 是指在Terraform配置文件中明确声明模块之间的依赖关系,以确保正确的部署和管理基础设施。 Terraform是一个开源的基础设施即代码工具,它允许开发人员使用简单的声明性语言来定义和管理基础设施资源。模块是Terraform中…

EVAL-21489-EZLITE原理图下载方法

1,进入官网,搜索“21489”: 2,下拉找到EVAL-21489-EZLITE,点击“文件”: 3,点击“电路板设计数据库”的“查看全部”: 4,点击下载即可: 5,下载完成…

系统设计之订单系统中如何防止商品超卖

一、策略 在订单系统中,防止商品超卖是一个至关重要的问题,涉及到多个方面的策略和技术。以下是一些防止商品超卖的主要措施: 库存实时同步与检查: 确保订单系统和库存系统之间的数据实时同步,每次订单生成或取消时&…

Python 全栈体系【四阶】(二十五)

第五章 深度学习 二、计算机视觉基本理论 11. 图像梯度处理 11.1 什么是图像梯度 图像梯度计算的是图像变化的速度。对于图像的边缘部分,其灰度值变化较大,梯度值也较大;相反,对于图像中比较平滑的部分,其灰度值变化…

【鸿蒙开发】ArkTS和组件

1. 初识ArkTS语言 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript生态基础上做了进一步扩展,继承了TS的所有特性。 当前,ArkTS在TS的基础上主要扩展了如下能力: 基本语法:ArkTS定义了声明式UI描述、自…

一招搞定vcruntime140_1.dll无法继续执行代码的解决方法

在我们日常频繁地与计算机互动、依赖其高效处理各类任务的过程中,偶尔会遭遇一些突发的技术问题,导致原本顺畅的操作流程被迫中断。其中一种常见的困扰便是系统弹出一则明确且令人颇感困惑的错误提示:“由于找不到vcruntime140_1.dll文件&…

C语言的显式类型转换和隐式类型转换详细讲解

目录 一、类型转换 1、显式类型转换 2、隐式类型转换 二、算术转换 三、总结 每个编译器都会对表达式做两件事情,一是判断表达式中操作符的优先级和结合性,二是判断表达式中的操作数类型是否一致,如果不一致则需要进行类型转换。第一点在…

机器学习(五) -- 监督学习(2) -- k近邻

系列文章目录及链接 目录 前言 一、K近邻通俗理解及定义 二、原理理解及公式 1、距离度量 四、接口实现 1、鸢尾花数据集介绍 2、API 3、流程 3.1、获取数据 3.2、数据预处理 3.3、特征工程 3.4、knn模型训练 3.5、模型评估 3.6、结果预测 4、超参数搜索-网格搜…

从零开始学RSA:已知n,e,d求p,q和私钥文件修复

(8)已知n,e,d求p,q 一看这个标题你就应该有个觉悟,n一定无法直接分解得到p和q。 题目: 10-存货5 题目给出了两个文件,一个是加密脚本chall.py,一个是加密后输出的内容output.txt。 分析一下加密脚本: from gmpy2 import invertf…

相机模型浅析

相机模型 文章目录 相机模型四个坐标系针孔相机模型世界坐标系到相机坐标系相机坐标系到图像坐标系图像坐标到像素坐标 四个坐标系 ①世界坐标系:是客观三维世界的绝对坐标系,也称客观坐标系。因为数码相机安放在三维空间中,我们需要世界坐标…