微信小程序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据option的value值快速设定初始的selected选项
Aug 13 Javascript
Jquery知识点二 jquery下对数组的操作
Jan 15 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
Dec 25 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
May 15 Javascript
JavaScript tab选项卡插件实例代码
Feb 23 Javascript
jQuery隐藏和显示效果实现
Apr 06 Javascript
解决node.js安装包失败的几种方法
Sep 02 Javascript
深入理解javascript的getTime()方法
Feb 16 Javascript
vue的安装及element组件的安装方法
Mar 09 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
Sep 27 Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
Nov 19 Javascript
vue实现百度搜索功能
Dec 28 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
PHP 生成的XML以FLASH获取为乱码终极解决
2009/08/07 PHP
PHPLog php 程序调试追踪工具
2009/09/09 PHP
php数据库抽象层 PDO
2011/05/07 PHP
解决cPanel无法安装php5.2.17
2014/06/22 PHP
php使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
2015/11/16 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
bgsound 背景音乐 的一些常用方法及特殊用法小结
2010/05/11 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
jquery 根据name名获取元素的value值
2015/02/27 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
2016/12/14 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
js设置随机切换背景图片的简单实例
2017/11/12 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
[02:54]DOTA2亚洲邀请赛 VG战队出场宣传片
2015/02/07 DOTA
[41:13]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第一场 11.20
2020/11/20 DOTA
Python设计实现的计算器功能完整实例
2017/08/18 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
python反编译学习之字节码详解
2019/05/19 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
python绘制玫瑰的实现代码
2020/03/02 Python
为什么说python更适合树莓派编程
2020/07/20 Python
利用python进行文件操作
2020/12/04 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
2014年内部审计工作总结
2014/12/09 职场文书
欢送会主持词
2015/07/01 职场文书
一行Python命令实现批量加水印
2022/04/07 Python