html52.com
我爱小程序-开发者交流社区

多个Picker之间会互相影响

问题模块
API和组件

在一个页面上布置两个picker,当将其中一个的选项改变为不是默认的值的后,点击两外一个picker,弹出选项窗口中的默认值也会随着前面的那个picker的索引而改变

<picker range="{{modeList}}" value="{{modeIndex}}" bindchange="changeMode">

                <button class="weui-btn mini-btn" size="mini" type="primary" plain="true">

                  {{modeList[modeIndex]}}

                </button>

              </picker>

              <picker range="{{ownerList}}" value="{{ownerIndex}}" bindchange="changeOwner">

                <button class="weui-btn mini-btn" size="mini" type="primary" plain="true">

                  {{ownerList[ownerIndex]}}

                </button>

              </picker>


网友回复

杜安:

小程序的设计者真TM脑残!每个picker要一个索引变量和名不同功能相同的绑定方法。什么叫代码重用!

danarrr?:

解决了吗sos

杨小将军@群接龙:

我也遇到这个问题了 搞了半天 动态生成的几个picker之间下标有时会出现互相影响的问题 不知道官方什么时候能解决啊

海哥:

这的确是一个bug  我也出现了这个问题

页面上多个picker 时就有这样的问题

怀疑是===多个picker引用同一个下弹窗 , 导致下弹窗只记录最后一次的 index位置引起  希望官方解决该bug

至少考虑多个picker的情况

丹丽:

下面是js里的脚本,我检查了几遍感觉没什么问题。

Page({

  data: {

    modeList: ['分组模式', '列表模式'],

    modeIndex: 0,

    ownerList: ['我的', '全部'],

    ownerIndex: 0,

  },


onLoad: function (options) {

    // 页面初始化 options为页面跳转所带来的参数

},


changeMode: function (e) {

    this.setData({

      modeIndex: e.detail.value

    });

  },


  changeOwner: function (e) {

    this.setData({

      ownerIndex: e.detail.value

    });

  }

})

默认情况下是“分组模式”(modeIndex=0)和“我的”(ownerIndex=0)

第一个组件选择为“列表模式”(modeIndex=1),这时选择第二个组件,弹出的面板里标记为选中的是“全部”(ownerIndex=1的时候才是“全部”),这时的ownerIndex的值还是0,所以弹出面板中标记为选中的应该是“我的”。

不知道问题出在哪里?


不知道问题出在哪里?yyq:你看我发表的,我已经提交bug




yyq:

你看我发表的,我已经提交bug

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付