问题一:
使用vant的picker滑动选择功能时,发现滑动每停止时,关闭了picker组件change事件没有触发。于是乎出现了这种情况,刚才明明选的2月5号,怎么还是显示的上一个选择的值。
然后在关闭选择器的按钮事件中(这个事件是绑定在自己写的button上),强制暂停惯性滚动,进而触发onChange事件,更新选中的值。也会出现滑动快了,点了自己写的确定按钮关闭了选择器,最后的时间不是自己选的时间。
<a href="javascript:" class="btn" @click="test">确定</a> test(){ this.$refs.picker.confirm()//普通picker this.$refs.datetimePicker.getPicker().confirm() //日期datetimePicker this.confirm() }, // 点击确定后回调 confirm() { const { datetimePicker, picker } = this.$refs; const [year, month, day] = datetimePicker.getPicker().getValues(); const [{ value: pickerVal }] = picker.getValues(); this.currVal = [new Date(year, month - 1, day).getTime(), pickerVal]; this.show = false; }
获取picker实例,再调confirm强制暂停惯性滚动可以得到当前正确的值,注意:使用vant的 DatetimePicker时,看了官网文档,有个getPicker方法,用于获取picker实例