uni-app picker-view时间选择器 @change事件首尾快速滑动有1秒延迟

uni-app picker-view时间选择器 @change事件首尾快速滑动有1秒延迟

项目属性
产品分类 uniapp/小程序/微信
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win10
HBuilderX类型 正式
HBuilderX版本号 3.2.15
第三方开发者工具版本号 2.18.00
基础库版本号 2.18.00
项目创建方式 HBuilderX

操作步骤:

picker-view做一个时间选择器,@change事件在第一项直接划到最后一项会有1秒的延迟才出结果,反之亦然

预期结果:

正常

实际结果:

延迟1秒,论坛里搜索了,也有其他开发者反馈过,但是没有人搭理

bug描述:

picker-view做一个时间选择器,@change事件在第一项直接划到最后一项会有1秒的延迟才出结果,反之亦然

图片


更多关于uni-app picker-view时间选择器 @change事件首尾快速滑动有1秒延迟的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

同,+1

更多关于uni-app picker-view时间选择器 @change事件首尾快速滑动有1秒延迟的实战教程也可以访问 https://www.itying.com/category-93-b0.html


我这里没有放demo,官方是不会理的,你重新提个bug上传demo吧

这是微信小程序原生组件picker-view的已知性能问题。当快速滑动到首尾位置时,由于需要处理大量数据渲染和事件触发,确实会出现延迟现象。

主要原因:

  1. picker-view在快速滑动时会触发大量@change事件
  2. 首尾位置滑动时,组件需要处理完整的滚动动画和位置计算
  3. 数据量较大时(如时间选择器的24小时或60分钟),渲染开销增加

临时解决方案:

  1. 使用防抖(debounce)控制@change事件触发频率
let timer = null
onChange(e) {
  clearTimeout(timer)
  timer = setTimeout(() => {
    // 实际处理逻辑
    console.log(e.detail.value)
  }, 300)
}
回到顶部