微信小程序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中的location用法简单介绍
Mar 07 Javascript
JavaScript面象对象设计
Apr 28 Javascript
apply和call方法定义及apply和call方法的区别
Nov 15 Javascript
jquery判断复选框选中状态以及区分attr和prop
Dec 18 Javascript
基于bootstrop常用类总结(推荐)
Sep 11 Javascript
JavaScript实现的斑马线表格效果【隔行变色】
Sep 18 Javascript
js+css实现打字效果
Jun 24 Javascript
JS算法题之查找数字在数组中的索引位置
May 15 Javascript
layui checkbox默认选中,获取选中值,清空所有选中项的例子
Sep 02 Javascript
Node.js学习教程之Module模块
Sep 03 Javascript
JavaScript实现左右滚动电影画布
Feb 06 Javascript
原生js实现购物车
Sep 23 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
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
PHP实现HTTP断点续传的方法
2015/06/17 PHP
js获取json元素数量的方法
2015/01/27 Javascript
angularjs表格ng-table使用备忘录
2016/03/09 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
2016/05/21 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
2016/09/05 Javascript
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
2020/01/03 Javascript
返回上一个url并刷新界面的js代码
2020/09/12 Javascript
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
Python生成pdf文件的方法
2014/08/04 Python
web.py在模板中输出美元符号的方法
2014/08/26 Python
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
python计算圆周率pi的方法
2015/07/11 Python
详解Django缓存处理中Vary头部的使用
2015/07/24 Python
win与linux系统中python requests 安装
2016/12/04 Python
Django项目使用CircleCI的方法示例
2019/07/14 Python
使用浏览器访问python写的服务器程序
2019/10/10 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
5款实用的python 工具推荐
2020/10/13 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
傲盾软件面试题
2015/08/17 面试题
小学生自我鉴定
2013/10/12 职场文书
董事长岗位职责
2013/11/30 职场文书
优秀企业获奖感言
2014/02/01 职场文书
学校班班通实施方案
2014/06/11 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
学校教学管理制度
2015/08/06 职场文书
教你用Python写一个植物大战僵尸小游戏
2021/04/25 Python
Python OpenCV 图像平移的实现示例
2021/06/04 Python
pandas数值排序的实现实例
2021/07/25 Python