微信小程序多级联动第一次进入无法触发bindcolumnchange,导致联动失败

问题:真机测试,自定义的多级联动进入页面第一次选择无法触发bindcolumnchange,导致联动失败,第二次选择时则又可以了。

原因:value的值不对!

value array [] 表示选择了 range 中的第几个(下标从 0 开始)

注意⚠️:这里为三级联动,所以multiIndex为数组[0, 0, 0]

<picker mode="multiSelector"
        bindcolumnchange="bindMultiPickerColumnChange"
        bindchange="pickerChange"
        range-key='name'
        value="{
     
     {multiIndex}}"
        range="{
     
     {list}}">
  		{
   
   {category || '选择分类'}}
</picker>

测试:

当value的值不为数组,就会导致第一次无法触发bindcolumnchange,真机上也会第一次无法触发bindcolumnchange,导致联动失败

  1. 不写value的值或去掉value的值都没影响,但value用来做定位的,还是要用的

  2. 当 value="[0,0,0]",
    value="{pp}"
    multiIndex: ‘[0,0,0]’
    数据不为数组时,无法触动bindcolumnchange

  3. value="{ {[0,0,0]}}"可行

  4. 运行过程中,发生改变,multiIndex: ‘[0,0,0]’ 则导致渲染失败

[渲染层错误] TypeError: Cannot assign to read only property '1' of string '[0, 0, 0]'

方案:

注意⚠️:确保value的组为数组!! value是用来调节由于切换行,让其他的联动行可以滑动回顶部,即设定对应其所在的索引位置。

猜你喜欢

转载自blog.csdn.net/qq_1296888290/article/details/111995806
今日推荐