uni-app uni-datetime-picker 日期选择器 type="daterange" 时,在小程序中已选择时间区间,再次点击时,之前选择的时间区间仍为选中状态
uni-app uni-datetime-picker 日期选择器 type=“daterange” 时,在小程序中已选择时间区间,再次点击时,之前选择的时间区间仍为选中状态
问题描述
uni-datetime-picker 日期选择器 type="daterange" 时,在小程序中已选择时间区间,再次点击时,之前选择的时间区间还是选中状态。

bug 已修复,更新一下2.2.1+ 版
更多关于uni-app uni-datetime-picker 日期选择器 type="daterange" 时,在小程序中已选择时间区间,再次点击时,之前选择的时间区间仍为选中状态的实战教程也可以访问 https://www.itying.com/category-93-b0.html
请问处理好了吗,现在还是不对
我也遇到这个问题了,希望尽快更新下。
钉钉小程序,选择日期之后,改变range值,打开日历,还会显示之前的日期
在uni-app的uni-datetime-picker组件中,当type="daterange"时,如果在小程序端出现已选择的时间区间再次点击时仍保持选中状态,这通常是由于组件的内部状态未正确重置导致的。
你可以通过以下方式解决:
-
使用
v-model绑定值并手动清空
在关闭日期选择器或重新打开时,将绑定的值重置为空数组[],确保组件重新渲染时没有残留的选中状态。<template> <uni-datetime-picker type="daterange" v-model="dateRange" @close="handleClose" /> </template> <script> export default { data() { return { dateRange: [] }; }, methods: { handleClose() { // 关闭选择器时清空数据,确保下次打开时无选中状态 this.dateRange = []; } } }; </script> -
使用
key强制重新渲染
通过改变key值强制组件重新初始化,避免内部状态缓存。<template> <uni-datetime-picker :key="pickerKey" type="daterange" v-model="dateRange" /> </template> <script> export default { data() { return { dateRange: [], pickerKey: 0 }; }, methods: { resetPicker() { this.pickerKey += 1; // 改变key值,强制重新渲染组件 } } }; </script> -
检查组件版本
确保使用的uni-datetime-picker为最新版本,旧版本可能存在状态管理问题。 -
使用
ref调用组件方法
通过ref获取组件实例,调用内部的clear或reset方法(如果组件支持)。<template> <uni-datetime-picker ref="datePicker" type="daterange" v-model="dateRange" /> </template> <script> export default { methods: { resetPicker() { this.$refs.datePicker.clear(); // 尝试调用清空方法 } } }; </script>

