加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

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

发布时间:2020-12-14 19:02:03 所属栏目:资源 来源:网络整理
导读:在使用微信小程序picker组件时候,可以设置属性? ?mode = multiSelector? ?意为多列选择,关联选择,当第一列发生改变时侯,第二列甚至第三列发生相应的改变。但是官方文档上给的只有三列数据关联改变,没有两列改变得,我在写的时候琢磨了很久官方文档,于

在使用微信小程序picker组件时候,可以设置属性? ?mode = multiSelector? ?意为多列选择,关联选择,当第一列发生改变时侯,第二列甚至第三列发生相应的改变。但是官方文档上给的只有三列数据关联改变,没有两列改变得,我在写的时候琢磨了很久官方文档,于是写下此篇文档,作为总结。

结构文件?

<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 函数,当每一列改变时候都会触发这个函数,

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读