微信小程序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 相关文章推荐
js文件中调用js的实现方法小结
Oct 23 Javascript
Javascript的时间戳和php的时间戳转换注意事项
Apr 12 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
Oct 11 Javascript
js阻止冒泡和默认事件(默认行为)详解
Oct 20 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
Oct 27 Javascript
vue.js实现价格格式化的方法
May 23 Javascript
详解如何使用webpack+es6开发angular1.x
Aug 16 Javascript
JS中Object对象的原型概念基础
Jan 29 Javascript
p5.js实现斐波那契螺旋的示例代码
Mar 22 Javascript
Vue绑定内联样式问题
Oct 17 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
May 08 Javascript
vue.js实现图书管理功能
Sep 24 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中Session的概念
2006/10/09 PHP
PHP 读取Postgresql中的数组
2013/04/14 PHP
PHP学习笔记之session
2018/05/06 PHP
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
nw.js实现类似微信的聊天软件
2015/03/16 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
jQuery实现字体颜色渐变效果的方法
2017/03/29 jQuery
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
node事件循环和process模块实例分析
2020/02/14 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
2020/10/13 Javascript
vue 动态添加的路由页面刷新时失效的原因及解决方案
2021/02/26 Vue.js
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
python paramiko实现ssh远程访问的方法
2013/12/03 Python
Python实现获取网站PR及百度权重
2015/01/21 Python
Python中字典创建、遍历、添加等实用操作技巧合集
2015/06/02 Python
Python优先队列实现方法示例
2017/09/21 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
Python中常用的os操作汇总
2020/11/05 Python
Python基于Webhook实现github自动化部署
2020/11/28 Python
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
网络艺术零售业的先驱者:artrepublic
2017/09/26 全球购物
先进集体获奖感言
2014/02/13 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
2015年教师党员自我评价材料
2015/03/04 职场文书
听证通知书
2015/04/24 职场文书
公司酒会致辞
2015/07/30 职场文书
导游词之塘栖古镇
2019/12/04 职场文书
pandas提升计算效率的一些方法汇总
2021/05/30 Python
React 高阶组件HOC用法归纳
2021/06/13 Javascript
Python中的 enumerate和zip详情
2022/05/30 Python