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


Posted in Javascript onOctober 27, 2020

在使用微信小程序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 函数,当每一列改变时候都会触发这个函数,

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

到此这篇关于微信小程序picker组件两列关联使用方式的文章就介绍到这了,更多相关微信小程序picker组件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
May 07 Javascript
js取得html iframe中的元素和变量值
Jun 30 Javascript
JQuery表单验证插件EasyValidator用法分析
Nov 15 Javascript
jQuery实现预加载图片的方法
Mar 17 Javascript
jQuery实现带有洗牌效果的动画分页实例
Aug 31 Javascript
基于jquery二维码生成插件qrcode
Jan 07 Javascript
Bootstrap媒体对象学习使用
Mar 07 Javascript
SpringMVC简单整合Angular2的示例
Jul 31 Javascript
浅谈node中的exports与module.exports的关系
Aug 01 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
Sep 05 Javascript
vue.js实现只能输入数字的输入框
Oct 19 Javascript
vue动态设置路由权限的主要思路
Jan 13 Vue.js
解决ant Design中this.props.form.validateFields未执行的问题
Oct 27 #Javascript
解决antd Form 表单校验方法无响应的问题
Oct 27 #Javascript
Antd表格滚动 宽度自适应 不换行的实例
Oct 27 #Javascript
解决Antd Table组件表头不对齐的问题
Oct 27 #Javascript
antd 表格列宽自适应方法以及错误处理操作
Oct 27 #Javascript
js实现简易ATM功能
Oct 27 #Javascript
Antd的table组件表格的序号自增操作
Oct 27 #Javascript
You might like
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
PHP crypt()函数的用法讲解
2019/02/15 PHP
Using the TextRange Object
2006/10/14 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
ExtJs中gridpanel分组后组名排序实例代码
2013/12/02 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
浅析2种JavaScript继承方式
2015/12/04 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
Vue异步加载about组件
2017/10/31 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
Python第三方库xlrd/xlwt的安装与读写Excel表格
2017/01/21 Python
Python实现的弹球小游戏示例
2017/08/01 Python
python实现神经网络感知器算法
2017/12/20 Python
wxpython实现图书管理系统
2018/03/12 Python
Django models文件模型变更错误解决
2020/05/11 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
国贸专业的职业规划范文
2014/01/23 职场文书
教师产假请假条
2014/04/10 职场文书
实习评语大全
2014/04/26 职场文书
奥巴马连任演讲稿
2014/05/15 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
婚庆主持词大全
2015/06/30 职场文书
《夜莺的歌声》教学反思
2016/02/22 职场文书
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL