HarmonOS 日期选择组件(DatePicker)

本文 我们一起来看基础组件中的
DatePicker
这就是 日程开发中的日期组件
他可以创建一个日期的范围 并创建一个日期的滑动选择器
这里 我们先写一个组件的骨架

@Entry
@Component
struct Index {

  build() {
    Row() {
      Column() {
        
      }
      .width('100%')
    }
    .height('100%')
  }
}

然后 我们先在Column组件下写一个

DatePicker()

就会出现这样一个日期选择组件
我们也可以对它进行一个上下滑动
在这里插入图片描述
但这里有个问题
我们组件上的日期是 2024 1 31
在这里插入图片描述
但我现在的时间是 2024 1 8
在这里插入图片描述
这个问题 官方回应是修复了 但可能 我们的版本不对 这是一个官方认可的BUG

但可以给个默认时间 我们鼠标贴到组件上 出现提示后 进入API文档
在这里插入图片描述
根据文档描述 这个组件有三个参数

start 开始时间 默认值 Date(‘1970-1-1’)
end 结束时间 默认值 Date(‘2100-12-31’)
selected 默认选中的时间 默认值说是系统当前日期 但我们刚才也看了 这个是有问题的
在这里插入图片描述
然后 往下拉 有一个 lunar 类型 boolean
如果是 true 表示用农历 false 表示用阳历
在这里插入图片描述
我们可以直接这样

@Entry
@Component
struct Index {

  @State tiwe:Date = new Date("2024-01-08");

  build() {
    Row() {
      Column() {
          DatePicker({
            start: new Date("2023-12-01"),
            end: new Date("2025-01-03"),
            selected: this.tiwe
          }).lunar(false)
      }
      .width('100%')
    }
    .height('100%')
  }
}

直接创建一个 @State 修饰的 date时间类型数据 通过 new Date函数来讲字符串转为正规时间格式
然后作为 selected值 就是默认选中的时间 然后设置了 start 最早可以选择到 2023-12-01 end 最晚可以选择到 2025-01-03

运行结果如下
在这里插入图片描述
这里告诉大家一个很奇葩的事 start end selected 只要你有一个没设置 其他的就都不会生效
希望官方早点修复

然后 我们可以通过 lunar 控制他是 用阳历还是农历 例如 我们这里改成 true 用农历的
在这里插入图片描述
然后 我们可以通过 onChange 监听时间改变 并输出改变的值

DatePicker({
	start: new Date("2023-12-01"),
	end: new Date("2025-01-03"),
	selected: this.tiwe
})
.lunar(false)
.onChange((value:object)=> {
    console.log(JSON.stringify(value));
})

onChange的参数 是一个JSON对象 我们通过 js的JSON.stringify将它转字符串
此时 我们拖动修改时间 就会输出
在这里插入图片描述
但这里 值得一提的是 不要想什么响应式 HarmonyOS 的表单是没有双向绑定的 也就是说 DatePicker的选项时间改变了 绑定给selected的响应式数据是不会改变的 你要想办法 通过这个json赋值给 selected绑定的属性

这里可以提示大家 你在js中可以用的属性方法 基本上 ArkTS中也都有提供的

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis:原理速成+项目实战——Redis实战5(互斥锁、逻辑过期解决缓存击穿问题)

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:Redis:原理速成项目实战——Redis实战4(解决Redis缓存穿透、雪崩、击穿) 📚订阅专…

想学习云计算么?教你如何免费白嫖微软和AWS的云资源一年

在这个数字化飞速发展的时代,云计算已成为IT行业的未来趋势。作为一名渴望进步的IT专业人员,掌握云计算不仅意味着技能的提升,更是升职加薪、拓宽职业道路的重要跳板。这里教你如何免费利用微软Azure和亚马逊AWS的云资源,为期一年…

oracle11范围表空间实例

1.表分区:范围分区,散列分区,列表分区,组合分区,inetrval分区 范围分区:商品零售表,按照销售日期所在的季度创建4个分区 --先建立表空间:临时表空间是不可以存放数据的,…

Python——数据类型转换

# 将数字类型转换成字符串 num_str str(111) print(type(num_str), num_str) \# 将浮点类型转换成字符串 float_str str(12.34) print(type(float_str), float_str) # 将字符串转变成数字 num int("234") print(type(num)) # 将字符串转变成浮点型 num2 float(&q…

Java学习笔记-day05-响应式编程初探-自定义实现Reactive Streams规范

最近在学响应式编程,这里先记录下,响应式编程的一些基础内容 1.名词解释 Reactive Streams、Reactor、WebFlux以及响应式编程之间存在密切的关系,它们共同构成了在Java生态系统中处理异步和响应式编程的一系列工具和框架。 Reactive Streams…

12.8-1.8

2023.12.8 redis容器 docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf redis.conf不存在,需先在宿主机创建该目录下文件&#xff0c…

知识点整理[(GraphGeo)RELATED WORK]

2 RELATED WORK 2.1 IP Geolocation 问题一:IP定位预测方法之一:Data mining-based methods 回答: 依赖于在公开的资源中挖掘位置线索来对目标IP(target IP)进行地理定位。其中一些数据分析了来自与IP相关的数据库,如WHOIS数据库和DNS的数据。 (1)例如,Moore等…

Transformer架构的局限已凸显,被取代还有多久?

江山代有才人出,各领风骚数百年。这句话无论是放在古往今来的人类身上,还是放在当今人工智能领域的大模型之上,都是最贴切不过的。无论是一个时代的伟人,还是统治一个领域的技术,最终都会有新的挑战者将其替代。Transf…

2024-01-09 Android.mk 根据c文件名插入特定的宏定义,我这里用于定义log LOG_TAG 标签

一、在Android的构建系统中,使用Android.mk构建脚本可以根据特定需求来定义宏。如果你想根据C文件的名称来插入特定的宏定义,可以使用条件语句检查文件名,并相应地设置宏。 在Android的构建系统中,使用Android.mk构建脚本可以根据…

解决uni-app小程序获取路由及路由参数

代码: this.id = this.$route.query.id;错误信息: 解决方案: // 获取query对象// #ifdef H5this.id = this.$route

《MLCC电容失效模式揭秘:机械、热、电裂纹分析及预防》

Q:MLCC电容是什么结构的呢? A:多层陶瓷电容器是由印好电极(内电极)的陶瓷介质膜片以错位的方式叠合起来,经过一次性高温烧结形成陶瓷芯片,再在芯片的两端封上金属层(外电极&#xf…

IPv6路由协议---IPv6动态路由(OSPFv3-3)

OSPFv3使用Link-local地址 OSPFv3是运行在IPv6上的路由协议,同样使用链路本地地址来维持邻居,同步LSA数据库。除Vlink外的所有OSPFv3接口都使用链路本地地址作为源地址及下一跳来发送OSPFv3报文,带来的好处: 不需要配置IPv6全局地址,就可以得到OSPFv3拓扑,实现拓扑与地址…

HarmonyOS应用开发者基础认证考试

判断题 1.Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件。一个应用可以包含一个或多个Ability。 正确(True) 2.所有使用Component修饰的自定义组件都支持onPageShow,onBackPress和onPageHide生命周期函数。 错误(False) 3.每调用一次router.pushUrl()方法,…

SAM-Track online / offline配置

segment anything model(SAM)是Meta于2023年4月5日发布的分割基础模型。SAM 允许分割任何对象而无需微调。 可以在这里尝试SAM模型的效果。 分割效果这么好,都忍不住想用SAM来做场景的语义分割,realtime与否先放在一边&#xff0c…

oracle19c容器数据库rman备份特性-----性能优化(三)

目录 冗余备份片 1.备份的时候指定 2.rman配置中设定 归档备份(将备份集保留) 二级备份(将备份文件保留) 1.备份闪回恢复区的恢复文件 2.备份所有恢复文件 recovery catalog database 1.創建recovery catalog 2.创建VPC…

Vscode设置git账户密码(不需要每次都输入)

在Vscode提交项目代码或者拉取代码的时候,如果每次都需要输入git的账户密码,那么就在终端输入: git config --global credential.helper store 命令 然后执行git pull 提示输入用户密码后,就会缓存; ※注:如…

今日实践 — 附加数据库/重定向失败如何解决?

WMS数据库与重定向 前言正文如何建立数据库连接?第一步:打开SSMS,右击数据库,点击附加第二步:点击添加第三步:找到自己的数据库文件,点击确定按钮第四步:若有多个数据库,…

BEV+Transformer感知架构共识下,传感器「火药味」再升级

高阶智能驾驶战火愈演愈烈,正带动感知方案卷入新一轮军备竞赛。 根据高工智能汽车研究院最新发布数据显示,2023年1-9月,中国市场(不含进出口)乘用车前装标配(软硬件)NOA交付新车37.73万辆&…

Qt QLineEdit文本框控件

文章目录 1 属性和方法1.1 占位字符串1.2 对齐方式1.3 回显模式1.4 读写控制1.5 格式控制1.6 信号和槽 2 实例2. 布局2.2 代码实现 QLineEdit 是Qt 中的文本框,准确地说是单行文本框,通常用于接受用户的输入。 比如用户输入用户名、密码等,都…

中国京津冀国际光伏展

中国京津冀国际光伏展是一个专门展示光伏技术和产品的展览会。该展览会旨在促进光伏产业的发展和推广,推动太阳能光伏的应用和利用。 这个展览会通常会邀请国内外的光伏企业和专家参加,展示最新的光伏技术和产品,包括太阳能电池板、光伏组件、…