微信小程序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 相关文章推荐
javascript 对象比较实现代码
Apr 27 Javascript
csdn 论坛技术区平均给分功能
Nov 07 Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
May 14 Javascript
jquery查找父元素、子元素(个人经验总结)
Apr 09 Javascript
javascript如何操作HTML下拉列表标签
Aug 20 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
Dec 21 Javascript
JavaScript定义全局对象的方法示例
Jan 12 Javascript
JS实现的Unicode编码转换操作示例
Apr 28 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
Mar 02 Javascript
从0到1搭建element后台框架优化篇(打包优化)
May 12 Javascript
js笔试题-接收get请求参数
Jun 15 Javascript
JS+CSS实现过渡特效
Jan 02 Javascript
解决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
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
在html页面上拖放移动标签
2010/01/08 Javascript
js中parseInt函数浅谈
2013/07/31 Javascript
jquery处理json数据实例分析
2014/06/03 Javascript
Jquery实现动态切换图片的方法
2015/05/18 Javascript
JS上传图片预览插件制作(兼容到IE6)
2016/08/07 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
Vue Socket.io源码解读
2018/02/07 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
Django实现简单分页功能的方法详解
2017/12/05 Python
Python机器学习之决策树算法
2017/12/22 Python
django 数据库连接模块解析及简单长连接改造方法
2019/08/29 Python
python银行系统实现源码
2019/10/25 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
JBL美国官方商店:扬声器、耳机等
2019/12/01 全球购物
JAVA高级程序员面试题
2013/09/06 面试题
监理员的岗位职责
2013/11/13 职场文书
学习十八大坚定理想信念心得体会
2014/03/11 职场文书
《理想的风筝》教学反思
2014/04/11 职场文书
个人求职自荐信范文
2014/06/20 职场文书
介绍信如何写
2015/01/31 职场文书
土建施工员岗位职责
2015/04/11 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
受欢迎的自荐信,就这么写!
2019/04/19 职场文书
写给汽车4S店的创业计划书,拿来即用!
2019/08/09 职场文书