1***@163.com
1***@163.com
  • 发布:2019-08-08 10:49
  • 更新:2021-05-10 20:44
  • 阅读:2843

【报Bug】picker-view选项更新后无法正常滚动选择

分类:uni-app

详细问题描述

picker-view组件,只包含一个picker-view-column。picker-view-column内的选择是动态非固定的,动态变动选项数量后无法正常滚动选择。

重现步骤

第一次向dataList里填充14个元素,组件使用正常无问题。
第二次清空dataList并向dataList里填充1个元素,组件使用正常无问题。
第三次清空dataList并向dataList里填充14个元素,组件显示无问题,但是!!!无法滚动选项,无论怎样向上滑动,均回到首选项,且未触发change事件。

IDE运行环境说明

HBuilderX——2.1.3.20190723

win7 64位

uni-app运行环境说明

h5端
Chrome——76.0.3809.100(正式版本) (64 位)
cli创建
自定义组件模式

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[可重现代码片段]

<picker-view indicator-class="selector-picker-indicator"  @change="onMulPickerChange">  
    <picker-view-column >  
        <view class="selector-picker-item" v-for="(v,i) of dataList" :key="i">  
            <text>{{v.name}}</text>  
        </view>  
    </picker-view-column>  
</picker-view>

[QQ]

2019-08-08 10:49 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com - 小博

这个问题 解决没?大佬!

像素方舟_青阳

像素方舟_青阳

请问有没有官方看下,ios下确实有点问题

梦尋Junjie

梦尋Junjie - 原来她有男朋友

我是 使用 v-if 来解决这个问题的,

picker-view 在创建的时候就 确定好了 PickerViewColumn 的数量, 当修改的时候, PickerViewColumn 数量并不会更新,

通过 控制台查看 picker-view 对象信息,并没有发现更新函数,

那么这个时候只能牺牲性能来解决这个问题, 在 picker-view 添加一个 v-if , 在改变 PickerViewColumn 数量之前 吧 picker-view 移除掉,移除之后再生成,

有两种实现

一种是使用定时器, 改变PickerViewColumn 之前 吧 v-if的值更改为 false , 更改后 使用定时器休眠 20+毫秒以上,在吧 v-if 更改为 true , 在更改为 true 之前吧PickerViewColumn 生成出来, 这样就是一个新的 picker-view,就不会出现划不动的情况, 缺点是不能把控时间

第二中是 使用 this.$nextTick , 和定时器一样, 好处就是 不用输入毫秒值, 优点是能够精准的把控时间

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