uni-app表单组件pick-view日滚动条显示错误
uni-app表单组件pick-view日滚动条显示错误
问题描述
详细问题描述(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
重现步骤
扫描H5版本uni-app体验二维码,选择表单组件pick-view,选择月滚动条,观察日滚动条(安卓apk,微信小程序也有这个问题)
结果
日滚动条可选择的最大值一直为31,不会因为2月份以及小月而改变(安卓apk,微信小程序也有这个问题)
期望
平年时,选择二月时,可选择的最大日为28,选择小月时,可选择的最大日为30,选择大月时,可选择的最大日为31。
闰年时,选择二月时,可选择的最大日为29,选择小月时,可选择的最大日为30,选择大月时,可选择的最大日为31。
环境信息
类别 | 信息 |
---|---|
IDE | HBuilderX App开发板 |
IDE版本 | HBuilderX.1.6.2.20190220 |
Windows版本 | Windows 10 企业版 |
Android版本 | 8.0.0 |
手机型号 | 小米 Mix1 |
附件
联系方式
QQ 541923225
更多关于uni-app表单组件pick-view日滚动条显示错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
这是一个已知的picker-view组件日期联动问题。根据你的描述,picker-view在月份变化时没有自动更新对应日期的最大值。
解决方案:
- 手动监听月份变化,动态设置日期范围
- 使用条件渲染重新初始化picker-view
示例代码:
data() {
return {
days: 31,
month: 1,
year: new Date().getFullYear()
}
},
methods: {
monthChange(e) {
this.month = e.detail.value + 1;
this.updateDays();
},
updateDays() {
// 根据年月计算当月天数
const daysInMonth = new Date(this.year, this.month, 0).getDate();
this.days = daysInMonth;
}
}
在模板中:
<picker-view [@change](/user/change)="monthChange">
<!-- 月份选择器 -->
<picker-view-column>
<!-- 月份选项 -->
</picker-view-column>
<!-- 日期选择器 -->
<picker-view-column>
<view v-for="(item,index) in days" :key="index">{{index+1}}日</view>
</picker-view-column>
</picker-view>