1***@163.com
1***@163.com
  • 发布:2022-06-27 14:39
  • 更新:2022-08-05 17:13
  • 阅读:1382

【报Bug】picker-view的change事件延迟触发

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: M1

第三方开发者工具版本号: 微信开发者工具1.05.2204250

基础库版本号: 2.23.5

项目创建方式: CLI

CLI版本号: 3.0

示例代码:

const pickerChange = (e) => {
console.log(Date.now());
const { value } = e.detail;
values.value = value;
confirmed.value && (lastConfirmed.value = true);
}

const onConfirm = () => {
console.log(Date.now());
confirmed.value = true;
close();
}

操作步骤:

连续滚动,再点击确认按钮

预期结果:

希望先执行change事件

实际结果:

先执行了confirm事件

bug描述:

目前H5和小程序都会出现这个问题:picker-view组件如果连续滚动的话,change事件会延迟执行,如果从最上面一行滚动到最下面一行,大概需要1s左右。这样导致点击确认按钮拿到的还是上一次的值。

2022-06-27 14:39 负责人:无 分享
已邀请:
DCloud_UNI_WZF

DCloud_UNI_WZF

confirm 是你手动触发,你感觉已经滚动完成,实际滚动动画并没有结束,可设置 immediate-change=true 手指松开立即触发change事件
另:下次提供demo尽量提供一个可直接运行的demo,谢谢!

  • 1***@163.com (作者)

    好的,谢谢啦

    2022-07-01 14:49

  • 1***@163.com (作者)

    hello,现在的H5不支持immediate-change属性吗

    2022-08-19 15:02

DCloud_UNI_WZF

DCloud_UNI_WZF

是在滚动还没结束的时候点击了confirm 吗

  • 1***@163.com (作者)

    滚动是结束了的,因为我都是滚动完成后去立刻点击确认按钮的。因为在小程序延迟的时间也更明显,所以很容易试出来了。H5中可能由于延迟的时间更短暂,不反复试是不明显的。

    2022-06-28 08:58

  • DCloud_UNI_WZF

    回复 1***@163.com: 方便提供个可复现demo吗?

    2022-06-29 10:15

  • 1***@163.com (作者)

    回复 DCloud_UNI_WZF: 您好,我上传了一个附件

    2022-07-01 09:37

5***@qq.com

5***@qq.com

可以定一个变量。 然后通过 pickstart、pickend 这2个事件 来改变这个变量 从而决定确定按钮是否可点击。

  • 1***@163.com (作者)

    可是这种方法只适用于小程序,H5这两个事件根本就不起作用

    2022-08-08 09:32

该问题目前已经被锁定, 无法添加新回复