收藏
回答

picker多列选择器range的长度改变后,picker不更新或不渲染,是不是bug?

部门选择器,有的有下属部门,有的没有,当滚动一级单位时,如果这个一级单位有二级单位,则增加一列显示二级单位,JS中完成了逻辑,appData中的range数组也改变了,但picker组件没有变化,当点击取消或确定后重新调出picker,二级单位就出来了。

目前在开发工具中是正常的,android真机中存在这个问题。

wxml:

<picker mode="multiSelector" 
      range='{{departmentTree}}' 
      range-key="{{'label'}}" 
      bindcolumnchange="bindcolumnchange"
      bindchange="bindchange"
      value="{{multiIndex}}">
   <view class="picker">#######</view>
</picker>


js:

 bindcolumnchange: function (e) {
    var that = this
    var temp = that.data.departmentTree,
      parentJson = that.data.departmentTree[e.detail.column][e.detail.value],
      multiIndex = that.data.multiIndex;
      multiIndex[e.detail.column] = e.detail.value
    if (parentJson.children) {
      //temp=new Array()
      parentJson.children.unshift({id:0,value:0,label:'请选择'})
      temp[e.detail.column + 1] = parentJson.children
      multiIndex[e.detail.column + 1] = 0
      console.log('下级单位加载中')
    }else{
      //temp[e.detail.column + 1] = []
      //multiIndex[e.detail.column + 1] = ''
      //temp = temp.slice(0,e.detail.column+1)
      //multiIndex = multiIndex.slice(0,e.detail.column+1)
    }
    temp.slice(0,e.detail.column)
    //that.setData({departmentTree:[]})
    that.setData({
      multiIndex:multiIndex,
      departmentTree: temp 
    })
  },
回答关注问题邀请回答
收藏

2 个回答

  • 彪
    2022-10-23

    同样遇到这样的问题,picker长度减少,就不能更新减少的部分

    那么久还存在这样的问题, 对小程序生态大失所望

    2022-10-23
    有用
    回复 3
    • 彪
      2022-10-23
      目前的处理方法是降级处理,获取前一个range的长度,然后push空数组到相同的长度
      2022-10-23
      回复
    • 错过小小罗
      错过小小罗
      2022-11-24
      老哥 你是怎么做的?新建一个数组,push数据,然后赋值给rangge吗?我做了还是不刷新view层
      2022-11-24
      回复
    • 且聆且听
      且聆且听
      2022-11-25
      你解决了么?我也遇到了
      2022-11-25
      回复
  • Riven.
    Riven.
    2021-12-06

    你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2021-12-06
    有用
    回复
登录 后发表内容