微信小程序picker组件两列关联的使用方法

这篇文章将为大家详细讲解有关微信小程序picker组件两列关联的使用方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

结构文件

<picker mode="multiSelector" bindchange="PickerChange" bindcolumnchange="PickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}">
  <view class="picker">
  {{multiArray[0][multiIndex[0]]}},{{multiArray[1][multiIndex[1]]}}
  </view>
</picker>

bindcolumnchange 为每一列改变时候触发的函数,参数为 e ,

bindchange 为最终选中之后触发函数,参数为 e,

range 为绑定数组

js文件

data: {
  multiArray: [['飞禽', '走兽'], ['鹰', '鸽子', '麻雀', '鹦鹉']],
  multiIndex: [0, 0],
  arrColumn0: ['鹰', '鸽子', '麻雀', '鹦鹉'],
  arrColumn1: ['兔子', '狮子', '猎狗']
},
PickerChange(e) {
  var value = e.detail.value
  this.setData({
    multiIndex: value
  })
  console.log(this.data.multiArray[0][value[0]], this.data.multiArray[1][value[1]])
},
PickerColumnChange(e) {
  // 先定义数据,数组里面两个数组,意为两列,当第一列发生改变时侯,给数组重新赋值
  var obj = e.detail
  var multiArray = this.data.multiArray
  if (obj.column == 0 && obj.value == 0) {
    multiArray[1] = this.data.arrColumn0
  }
  if (obj.column == 0 && obj.value == 1) {
    multiArray[1] = this.data.arrColumn1
  }
  this.setData({
    multiArray: multiArray
  })
},

设计思路

multiArray 为弹出层显示数据,为一个数组,数组里面有几个数组,就是显示几列,我这是两个数组,即为显示两列,

multiIndex 为最终选中得数据索引,是函数 PickerChange 参数 e 里面包含得数组
   e.detail.value 有两列,即会返回 [1,2] , 前面得 1 表示为,最终选择第一列得数组中索引为 1 对应的那个值。后边得 2 表示为,最终选中得为第二列数据中索引为 2 对应的值

arrColumn0 和 arrColumn1,是我定义得数组,可以从后台直接获取,但是一定要在 picker 组件弹出来之前,附上值。 multiArray 同理也可以这样赋值。

PickerColumnChange 函数,当每一列改变时候都会触发这个函数,

微信小程序picker组件两列关联的使用方法

关于微信小程序picker组件两列关联的使用方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。