收藏
回答

picker-view中bindchange触发太慢

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug picker-view 客户端 7.2.3 2.7.1

- 当前 Bug 的表现(可附上截图)


picker-view中bindchange方法会在滑动结束后才触发,如果我随手一滑,还没等他停下就就按确定按钮或者跳转页面,那么bindchange没触发就不能获取到滑动后改变的值,这样对于用户体验来说,极度不好


回答关注问题邀请回答
收藏

10 个回答

  • さるです
    さるです
    2023-06-16

    给找到这篇文章的人省流

    picker-view增加了immediate-change方法,设置成true。

    是否在手指松开时立即触发 change 事件。若不开启则会在滚动动画结束后触发 change 事件。

    2023-06-16
    有用 3
    回复
  • Nice
    Nice
    2019-06-18

    关注,好像17年就有人反馈这个问题 了,这个问题一直没有修复么?

    2019-06-18
    有用 2
    回复
  • 简单与秋夜
    简单与秋夜
    2022-05-19

    2022.似乎还有这个问题, 但是我弄了办法解决, 滑动太快随他去划, 划太快一般第二列展示的都是上一次的内容, 还没更新就被确定了, 所以我们点击确定的时候遍历原数组找到滑动的那一项的第二列内容, 判断原数组第二列的内容是否和这次第二列的内容一致,如果不一致则把原数组的第二列内容作为选中的内容, 再次打开时记得重置picker数组第二列展示的内容,几乎完美解决问题

    2022-05-19
    有用 1
    回复 1
    • Adlaw
      Adlaw
      2022-09-29
      官方去年已经解决了,注意看文档
      2022-09-29
      回复
  • F
    F
    2021-06-30

    太坑了,简直就是设计缺陷。我第二例的值滑动,马上按确定按钮;第三列还没有请求。这时候得到的数据第二例变了,第三列还是之前第二列查询出来的的数据。这一切原因都是picker 的bindchange(确定按钮事件)bindcolumnchange(滑动变化事件)没有停止的情况下发生,确定按钮事件还阻止了滑动的事件。我加倒计时等候都不行!。

    建议组件优化:1.应该必须在滑动停止后才能点击确定按钮。2.确定按钮事件不要阻止滑动事件的执行。

    2021-06-30
    有用 1
    回复
  • 2021-04-21

    我们在快递管家小程序上开发时也遇到这个问题,

    触发时序为: bindpickstart -> bindchange -> bindpickend

    解决1:

    1)监听bindpickstart,bindchange,bindpickend

    2) bindpickstart设置isTouchingflag 为true, bindchange触发判断isTouchingflag 是否为true,如果true,则清除上一个定时器,延时200ms继续判断,bindpickend设置isTouchingflag 为false, bindchange事件防抖生效。

    缺点就是交互体验不太好,不能做到实时响应,只能实现基本功能。

    解决2:

    自实现一套picker-list组件

    2021-04-21
    有用 1
    回复
  • 沈҈剑心
    沈҈剑心
    2019-11-28

    确实有这个问题

    2019-11-28
    有用 1
    回复
  • 👧
    👧
    2022-10-28

    是啊2022年10月28刚好有这个bug,很多是说使用pickend判断结束后才可以点确认选择时间,有一种场景不默认显示时间,第一次用户也不能点击确认选择时间,还必须滑动一下?

    2022-10-28
    有用
    回复
  • lyt.
    lyt.
    2022-08-29

    2022了,还是碰到了这个问题。。没想到这么早就有人提出了,突然觉得心里好受些了哈哈哈

    2022-08-29
    有用
    回复
  • 凛iii
    凛iii
    2021-10-29

    picker-view有没有picke里columnchange事件?

    2021-10-29
    有用
    回复
  • 是小白啊
    是小白啊
    2019-06-14

    不停下来怎么确认你的选值?

    2019-06-14
    有用
    回复 6
    • magic
      magic
      2019-06-14

      滑动事件,他这个不是在滑动的时候跟随,是你滑动结束,在触发事件,这样会给用户造成延迟感,而且比较严重

      2019-06-14
      1
      回复
    • 关耳白告予
      关耳白告予
      2019-07-09

      是停的太慢了。尤其是每列的第一个和最后一个,要等两仨秒钟。用户用个P啊

      2019-07-09
      9
      回复
    • Healer
      Healer
      2019-10-17
      一群吃干饭的。。。
      2019-10-17
      回复
    • 小强
      小强
      发表于移动端
      2020-11-22
      不是滑动途中值就对应改变了吗?我已经滑动了你值还是我滑动之前的值不太好吧?
      2020-11-22
      回复
    • F
      F
      2021-06-30
      太坑了,者简直就是bug。我第二例的值滑动,马上按确定按钮;第三列还没有请求。这时候得到的数据第二例变了,第三列还是之前第二列查询出来的的数据。这一切原因都是picker 的bindchange(确定按钮事件) 在bindcolumnchange(值滑动变化事件)没有停止的情况下发生,确定按钮事件还阻止了滑动的事件。我加倒计时等候都不行!。
      建议组件优化:1.应该必须在滑动停止后才能点击确定按钮。2.确定按钮事件不要阻止滑动事件的执行。
      2021-06-30
      回复
    查看更多(1)
登录 后发表内容