记录下自己使用picker组件遇到的一些小问题,以及自己使用的解决方法,
这个方法应该不是唯一,大家有更好的方法也可以提出来一起参考下。
如果有多个选择器的话,而且没有改相应的一直参数,当你选择第一个选择器的第n个值的时候
就会同时控制另外一个选择器的第n个值被选中,这就不能被我们正常使用了,下面说下要改的参数:
红色的是修改的,具体每个对应什么,大家看一下官方文档picker组件就清楚了。
wxml:
<!--部门选择 -->
<view class="section department-select">
<picker bindchange="bindPickerChange1" value="{{bindex}}" range="{{departmentArray}}">
<view class="picker">
{{departmentArray[bindex]}}
</view>
</picker>
</view>
<!--身份选择 -->
<view class="section identity-select">
<picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}">
<view class="picker">
{{array[index]}}日报
</view>
</picker>
</view>
js:
data: {
array: ['夏彤','陈学华','甘广','黄龙流','李昌略','董俊辉','罗景盛','钟敏君','林锐','麦健发','曹兵'],
objectArray: [
{
id: 0,
name: '夏彤'
},
{
id: 1,
name: '陈学华'
},
{
id: 2,
name: '甘广'
},
index:0,
departmentArray: ['营销三部', '营销一部', '营销二部', '营销四部'],
objectdepartmentArray: [
{
id: 0,
name: '营销三部'
},
{
id: 1,
name: '营销一部'
},
{
id: 2,
name: '营销二部'
},
{
id: 3,
name: '营销四部'
}
],
bindex: 0,
bindPickerChange: function (e) {
console.log('picker发送选择改变,携带值为', this.data.array[e.detail.value])
this.setData({
index: e.detail.value
})
},
bindPickerChange1: function (e) {
console.log('picker发送选择改变,携带值为', this.data.departmentArray[e.detail.value])
this.setData({
bindex: e.detail.value
})
},
<!--身份选择 -->
<view class="section identity-select">
<picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}">
<view class="picker">
{{array[index]}}日报
</view>
</picker>
</view>