微信小程序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 相关文章推荐
onpropertypchange
Jul 01 Javascript
javaScript call 函数的用法说明
Apr 09 Javascript
innerHTML在IE中报错解决方案
Dec 15 Javascript
js在指定位置增加节点函数insertBefore()用法实例
Jan 12 Javascript
jQuery简单验证上传文件大小及类型的方法
Jun 02 Javascript
JavaScript必知必会(三) String .的方法来自何方
Jun 08 Javascript
使用jquery给新生的th绑定hover事件的实例
Feb 10 Javascript
jQuery实现的表格前端排序功能示例
Sep 18 jQuery
Vue2.x通用编辑组件的封装及应用详解
May 28 Javascript
vue+axios全局添加请求头和参数操作
Jul 24 Javascript
vue 修改 data 数据问题并实时显示操作
Sep 07 Javascript
Element-ui upload上传文件限制的解决方法
Jan 22 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中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
PHP使用正则表达式清除超链接文本
2013/11/12 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
2016/02/26 PHP
PHP扩展框架之Yaf框架的安装与使用
2016/05/18 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
JavaScript的目的分析
2007/01/05 Javascript
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
快速学习jQuery插件 Form表单插件使用方法
2015/12/01 Javascript
node.js操作MongoDB的实例详解
2017/10/11 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
JS判断数组四种实现方法详解
2020/06/29 Javascript
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
2016/07/01 Python
Python排序搜索基本算法之冒泡排序实例分析
2017/12/09 Python
Python解决八皇后问题示例
2018/04/22 Python
python assert的用处示例详解
2019/04/01 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
Python线程指南分享
2019/11/19 Python
Python批量将图片灰度化的实现代码
2020/04/11 Python
Python脚本破解压缩文件口令实例教程(zipfile)
2020/06/14 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
工地门卫岗位职责
2013/12/30 职场文书
单位在职证明书
2014/09/11 职场文书
工程承包协议书范本
2014/09/29 职场文书
2016北大自主招生自荐信模板
2016/01/28 职场文书
入团申请书格式
2019/06/20 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
解决pytorch-gpu 安装失败的记录
2021/05/24 Python
Go中的条件语句Switch示例详解
2021/08/23 Golang
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
2021/10/05 Javascript