微信小程序之利用vant-picker实现三级联动

微信小程序之利用vant-picker实现三级联动,第1张

拟设计一个设备故腔销亏障状况选择器,需要三级联动,第一级:设备大类;第二级:设备细类;第三级:故障描述,如下图:

1、需要引入vant-picker,需要定制一个数组,包含三级即[一级,一级内容,子类[二级,二级内容,子类[三级,三级内容]]],如下图

2、在vant-picker的onChange事件中,对上面数组进行分级控制。

3、难点,需要把数组按三级拆分出来,放到picker的三列中,控制不好就会各种报错。

1、json,引入vant-picker

2、wxml

绑定change confirm 2个必须事件

3、js文件

3.1 定义选项内容,需要分成三级

3.2 data 中实现picker3列

3.3 onChange 事件实现

3.4 常见问题

3.4.1 最后一级斗激如果没有内容,vant-picker会报错,所以需要做一个空判断,如果为空,赋值一个常量

3.4.2 是使用value,还是选择使用自己定义的常量,需要调试伍神看。value值已经获取到了三列数据,但是容易出错。我最后还是选择使用原来定义常量proSelectList。

4.1 三级数据齐全的选择

4.2 第三级如果为空,第三列使用默认数据

微信小程序让日期选择器循环的方法是:激孝罩

1、自定义选择器组件需要慎物用到picker-view跟picker-view-column。

2、打明闹开选择器时就要获取到当前的年月日,使用for遍历直接生成年份数组跟月份数组。注:天数根据年份跟月份动态生成。

3、在选择的过程中,选择器有个改变事件,当年份或者月份改变的时候,天数要随之变化。

用框架做项目可以事半功倍,它封装好的各种功能免去你很大部分的工作。返首taro+taroui可以很好的实现开发一次,多端运行为目的的小程序。

Taro UI - Picker 选择器是从底部旅世歼d起的滚动选择器,从官网给出的示例来看,通过onChange可以改变值,state的数据储存也是很简单的

state={selector:['美国','中国','巴西','日本']}

但是做项目的时候,数据的结构不可能那么简单,有时候是多层嵌套+多个条件选择,比如:

options数组里有3个对象,即要渲染出3个Picker选择器。

在当前js中拆冲,是无法在循环条件下渲染出来选择器的,就onChange触发的函数来说,就没法监听是由哪个对象改变的。

其实解决办法很简单,将选择器抽取出来为组件,父页面循环数组给子组件传递单个对象,这样渲染出来的每个选择器都是相互独立的,内调的onChange方法在子组件内部监听,也不会影响其他选项。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8237632.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存