picker-view中bindpickstart,bindpickend,bindchange执行
在我的picker-view中,有3列数据,multiIndex是picker-view的值。我一直认为滑动时,应该是pickstart先执行,然后是pickchange,最后才是pickend。但是,实际情况显然不是这样。看下面两次测试的例子: (1)先后快速向下滑动第1列和第3列,正常情况下是multiIndex应该从1,0,2变成0,0,0,(期间应该执行两次pickchange,第1次执行pickchange,multiIndex应该变成0,0,2,第二次执行就应该变成0,0,0了,pickstart和pickend也都应该是执行两次的。)如下图: [图片] 问题是第2次pickchange是在第2次pickend后执行的?这样不对吧!不过还好,最终结果是multiIndex值为0,0,0,不影响后面的程序执行。但是下面的测试就。。。 (2)如果 先后快速向下滑动第1列和第3列后,就紧接着点击蓝色的“开始挑战”按钮,开始执行startChallenge_rUSuccess(),那结果就不一样了。 整个过程是:pickstart先执行两次,然后执行第1次pickchange,multiIndex变成0,0,2,然后执行了两次pickend,不再执行第2次的pickchange,直接跟上了startChallenge_rUSuccess(),导致multiIndex的值也仍旧是0,0,2。没能够获取到正确的值,直接影响了后续计算。 [图片] https://developers.weixin.qq.com/miniprogram/dev/component/picker-view.html