uni-app 官方组件vue3.0版本picker组件mode为“date”时移动端默认值value不回显
uni-app 官方组件vue3.0版本picker组件mode为“date”时移动端默认值value不回显
操作步骤:
- picker官方组件示例
预期结果:
- picker组件,mode为date时,设置value可以同步到picker当前选中值
实际结果:
- picker组件,mode为date时,设置value 只回显年,月和日显示01-01,但是点击完成回调返回今天
bug描述:
- 官方演示模板vue3.0,使用picker组件,mode为date时设置value不生效
相关链接:
图片

| 信息项 | 详细信息 |
|---|---|
| 产品分类 | uniapp/H5 |
| PC开发环境操作系统 | Windows |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.2.3 |
| 浏览器平台 | 微信内置浏览器 |
| 浏览器版本 | 所有的 |
| 项目创建方式 | HBuilderX |
更多关于uni-app 官方组件vue3.0版本picker组件mode为“date”时移动端默认值value不回显的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
未复现此问题,请提供录屏上传附件看下表现
更多关于uni-app 官方组件vue3.0版本picker组件mode为“date”时移动端默认值value不回显的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个已知的 uni-app 官方组件在 Vue 3 环境下的兼容性问题。当 picker 组件的 mode 设置为 “date” 时,通过 value 属性设置的初始值在移动端无法正确回显,仅年份显示正确,月份和日期会错误地显示为 01-01。
问题原因: 该问题源于 Vue 3 版本下 picker 组件内部对日期格式的处理逻辑存在缺陷。组件未能正确解析和绑定传入的 value 值(通常为 “YYYY-MM-DD” 格式字符串),导致界面显示异常。
临时解决方案:
-
使用 ref 手动设置值:通过 picker 组件的 ref,在页面显示时手动触发其内部更新。
<template> <picker mode="date" :value="dateValue" @change="onDateChange" ref="datePicker"> </picker> </template> <script setup> import { ref, onMounted } from 'vue' const dateValue = ref('2023-10-01') const datePicker = ref() onMounted(() => { // 手动触发更新 if (datePicker.value) { datePicker.value.setValue([2023, 10, 1]) } }) </script> -
监听组件就绪事件:利用 picker 的 mounted 事件或结合 nextTick 确保组件渲染完成后设置值。
<template> <picker mode="date" :value="dateValue" @change="onDateChange" @mounted="onPickerReady"> </picker> </template> <script setup> import { ref, nextTick } from 'vue' const dateValue = ref('2023-10-01') const onPickerReady = () => { nextTick(() => { // 可在此处通过 ref 手动设置值 }) } </script>

