Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

van-datetime-picker 选择时间时,自己滚动 #3206

Open
OkamiyGit opened this issue May 27, 2020 · 34 comments
Open

van-datetime-picker 选择时间时,自己滚动 #3206

OkamiyGit opened this issue May 27, 2020 · 34 comments
Labels

Comments

@OkamiyGit
Copy link

OkamiyGit commented May 27, 2020

<view class="content_wrapper"> <view class="content">预定时间 </view> <van-cell class="custom-class" border="false" title="{{seleTime}}" is-link bind:click="showPopup" /> <van-popup show="{{ showDate }}" position="bottom" custom-style="van-datetime-picker" bind:close="onClose"> <van-datetime-picker type="datetime" formatter="{{ formatter }}" value="{{ currentDate }}" min-date="{{ minDate }}" max-date="{{ maxDate }}" bind:confirm="onSure" bind:cancel="onCanle" /> </van-popup> </view> data: { minHour: 10, maxHour: 20, minDate: new Date().getTime(), maxDate: new Date(2030, 10, 1).getTime(), currentDate: new Date().getTime(), minHour: 10, maxHour: 20, formatter(type, value) { if (type === 'year') { return ${value}年; } else if (type === 'month') { return ${value}月; } else if(type==='day'){ return ${value}日; }else if(type==='hour'){ return ${value}时; }else if(type==='minute'){ return ${value}分`;
}
return value;
},}

onClose(e) {
this.setData({
showDate: false
});
},

showPopup() {
this.setData({
showDate: true
});
},
onSure(e) {
//这里只是转化下时间
this.setData({
showDate: false,
seleTime: timeUtil.formatTimeTwo(e.detail, 'Y-M-D h:m:s')
});
},

onCanle(e) {
this.setData({
showDate: false
});
},
`

选择完时间会,自己一直在滚动,线上已发布版本都存在这个问题,不知道是哪里的问题,求解,着急,
版本
"dependencies": {
"@vant/weapp": "^1.3.1"
},

@harryxue1991
Copy link

是不是安卓的会这样,我也遇到了

@NiLinli
Copy link

NiLinli commented May 28, 2020

安卓曲面屏出现的概率很大

@moonflame
Copy link

安卓手机遇到了相同的问题,PC 端模拟器无问题。
如果按照文档的写法,在 input 事件里写上为控件自身赋值的代码,就会在两个日期之间无限循环地抽风式跳动……

@rex-zsd
Copy link
Collaborator

rex-zsd commented Jun 3, 2020

可以上传一下代码片段吗?这个case看起来挺复杂的

@zongwong
Copy link

zongwong commented Jun 5, 2020

我遇到了这个问题,按住月快速反复拖动,在月列动画还没结束的时候 按住年快速反复拖动 然后松手 年月就反复跳动

@moonflame
Copy link

https://gist.github.com/moonflame/2604229aec51f41a69adf82bda94509d
可以看下这个代码片段,安卓手机可以完全复现。

我遇到了这个问题,按住月快速反复拖动,在月列动画还没结束的时候 按住年快速反复拖动 然后松手 年月就反复跳动

如果在 input 事件里,像文档例子中一样写上为控件自己赋值的语句,就会出现这个这个情况,现在估计只能别在里面写赋值。

@zongwong
Copy link

zongwong commented Jun 5, 2020

https://gist.github.com/moonflame/2604229aec51f41a69adf82bda94509d
可以看下这个代码片段,安卓手机可以完全复现。

我遇到了这个问题,按住月快速反复拖动,在月列动画还没结束的时候 按住年快速反复拖动 然后松手 年月就反复跳动

如果在 input 事件里,像文档例子中一样写上为控件自己赋值的语句,就会出现这个这个情况,现在估计只能别在里面写赋值。

要绑定value才会出现bug,但是min-date我这边没出现问题 安卓10

@xiuxiuyifan
Copy link

解决了吗

@yzs1228
Copy link

yzs1228 commented Aug 3, 2020

请问这个问题怎么解决 我也遇到了这个问题

@tong822218
Copy link

哪个大神赶紧解决一下啊😆,项目上线了,急用.

@toptgh
Copy link

toptgh commented Oct 19, 2020

安卓会出现这个问题,去掉 bind:input="onInput" 可以

@luoluoly
Copy link

luoluoly commented Oct 22, 2020

哪个大神赶紧解决一下啊,项目上线了,急用.

去掉value和 bind:input="onInput"就可以了
van-datetime-picker
type="datetime"
bind:cancel="onCancle"
bind:confirm="onConfirm"
min-date="{{ minDate }}"
formatter="{{ formatter }}"

@wizzeng
Copy link

wizzeng commented Oct 31, 2020

Same issue

@prophetw
Copy link

prophetw commented Nov 10, 2020

在没有修复之前如果时间紧迫可以使用小程序官方提供的的picker组件来实现选择器的功能
https://developers.weixin.qq.com/miniprogram/dev/component/picker.html

@zzzhanga
Copy link

把bind:input换成bind:change事件就行,再在change事件里使用 let value=event.detail.getColumnValue(0)+':'+event.detail.getColumnValue(1) 获取到选中的值。

@HCenggel
Copy link

目前为止还没有解决,bind:input和value全部删除就没有问题了,关键是没法做回显

@zxbing
Copy link

zxbing commented Jun 10, 2021

啥时候这个问题能修复呢?

@WebRookie
Copy link

还没有修复吗?过去一年了啊!!

@LCBbest
Copy link

LCBbest commented Jul 29, 2021

把bind:input换成bind:change事件就行,再在change事件里使用 let value=event.detail.getColumnValue(0)+':'+event.detail.getColumnValue(1) 获取到选中的值。

你这个方法 他有延迟的 选择完时间 要等几秒 才可以回显,要不然还是之前的时间

@LCBbest
Copy link

LCBbest commented Jul 29, 2021

没人维护了吗?都快2年了,还不修复

@zzzhanga
Copy link

把bind:input换成bind:change事件就行,再在change事件里使用 let value=event.detail.getColumnValue(0)+':'+event.detail.getColumnValue(1) 获取到选中的值。

你这个方法 他有延迟的 选择完时间 要等几秒 才可以回显,要不然还是之前的时间

是的,但也只能这样暂时解决了,现在都没好吗。。。

@zengjiaxu
Copy link

???? 还没解决吗

@wjy329
Copy link

wjy329 commented Feb 26, 2022

我也遇到了这个问题,不知道该怎么解决,滑动的时候乱跳

@cuteCloud
Copy link

即使去掉所有的input监听和赋值 滑动快了 还是有几率会跳回之前的值

@xiaoliu28
Copy link

不纠结了,直接用微信原生的选择器搞定需求。

@perchecc
Copy link

还没有解决吗?vant是没人了吗?

@Stupidbrid
Copy link

一把鼻涕一把泪,重新在这个基础上封装了一个时间选择器

@WangYiBin1
Copy link

都快23年了,还没解决,多半是废了

@landluck
Copy link
Contributor

#1688

@landluck
Copy link
Contributor

#3759

@landluck
Copy link
Contributor

#4886

@landluck
Copy link
Contributor

#4025

@landluck
Copy link
Contributor

#3990

@johnsonwong666
Copy link
Collaborator

#5623

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests