在一个页面上布置两个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>
我擦,现在都2020年了,这个bug还没解决
小程序的设计者真TM脑残!每个picker要一个索引变量和名不同功能相同的绑定方法。什么叫代码重用!?
解决了吗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,所以弹出面板中标记为选中的应该是“我的”。
不知道问题出在哪里?
你看我发表的,我已经提交bug