微信小程序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之end()和pushStack()使用介绍
Feb 07 Javascript
indexOf 和 lastIndexOf 使用示例介绍
Sep 02 Javascript
AngularJS 避繁就简的路由
Jul 01 Javascript
微信小程序 网络API Websocket详解
Nov 09 Javascript
超全面的vue.js使用总结
Feb 12 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
Feb 20 Javascript
Angularjs上传文件组件flowjs功能
Aug 07 Javascript
浅谈Webpack打包优化技巧
Jun 12 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
Jul 21 Javascript
JavaScript事件冒泡与事件捕获实例分析
Aug 01 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
Jun 25 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
Aug 26 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下判断数组中是否存在相同的值array_unique
2008/03/25 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
PHP实现全角字符转为半角方法汇总
2015/07/09 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
利用PHP访问带有密码的Redis方法示例
2017/02/09 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
微信小程序实现获取小程序码和二维码java接口开发
2019/03/29 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
2019/10/12 jQuery
[14:20]刀塔大凶女神互压各路奇葩屌丝
2014/05/16 DOTA
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
Python实现字典的key和values的交换
2015/08/04 Python
Django中的Signal代码详解
2018/02/05 Python
python 切换root 执行命令的方法
2019/01/19 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
Python Serial串口基本操作(收发数据)
2020/11/06 Python
css3实现圆锥渐变conic-gradient效果
2020/02/12 HTML / CSS
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
推荐WEB开发者最佳HTML5和CSS3代码生成器
2015/11/24 HTML / CSS
英国名牌男装店:Standout
2021/02/17 全球购物
公司中层干部的自我评价分享
2014/03/01 职场文书
建设单位项目负责人任命书
2014/06/06 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
Python激活Anaconda环境变量的详细步骤
2021/06/08 Python
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技