微信小程序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下判断一个对象是否具有指定名称的属性的的代码
Jan 11 Javascript
UserData用法总结 lanyu出品
Jul 01 Javascript
jQuery数组处理方法汇总
Jun 20 Javascript
Ajax搜索结果页面下方的分页按钮的生成
Apr 05 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
Dec 17 Javascript
使用jquery实现以post打开新窗口
Mar 19 Javascript
Jquery实现图片预加载与延时加载的方法
Dec 22 Javascript
浅谈jQuery中的checkbox问题
Aug 10 Javascript
基于bootstrap页面渲染的问题解决方法
Aug 09 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
May 21 Javascript
Vue实现回到顶部和底部动画效果
Jul 31 Javascript
js实现飞机大战小游戏
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
CI框架中cookie的操作方法分析
2014/12/12 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
php-fpm服务启动脚本的方法
2018/04/27 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
Javascript类型转换的规则实例解析
2016/02/23 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
javascript 中事件冒泡和事件捕获机制的详解
2017/09/01 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
Node.js事件的正确使用方法
2019/04/05 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
python爬虫入门教程之点点美女图片爬虫代码分享
2014/09/02 Python
提升Python程序运行效率的6个方法
2015/03/31 Python
Python实现语音识别和语音合成功能
2019/09/20 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
2020/11/27 Python
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
OPPO手机官方商城:中国手机市场出货量第一品牌
2017/10/18 全球购物
瑜伽国际:Yoga International
2018/04/18 全球购物
捷克厨房用品购物网站:Tescoma
2018/07/13 全球购物
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
一篇.NET面试题
2014/09/29 面试题
捷科时代的软件测试笔试题
2015/11/09 面试题
幼儿园新学期寄语
2014/01/18 职场文书
合作经营协议书
2014/04/17 职场文书
如何写求职信
2014/05/24 职场文书
公司合并协议书范本
2014/09/30 职场文书
2014年防汛工作总结
2014/12/08 职场文书
实习推荐信格式模板
2015/03/27 职场文书
银行柜员优质服务心得体会
2016/01/22 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS