微信小程序使用picker组件出现问题怎么解决(picker,微信小程序,开发技术)

时间:2024-05-07 08:40:44 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    %E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E4%BD%BF%E7%94%A8picker%E7%BB%84%E4%BB%B6%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98%E6%80%8E%E4%B9%88%E8%A7%A3%E5%86%B3

先来看一下官方文档中picker的基本概念:

从底部弹起的滚动选择器,现支持三种选择器,通过mode来区分,分别是普通选择器,时间选择器,日期选择器,默认是普通选择器。

重要属性

range: 选取范围,数据类型为Array / Object Array,mode为 普通选择器 时,range 有效;

value: value 的值表示选择了 range 中的第几个(下标从 0 开始),数据类型肯定是Number;

bindchange: 绑定事件,value 改变时触发 change 事件,event.detail = {value: value}。

mode:选择器类型,可以是selector( 普通选择器)、multiSelector(多列选择器)、date(时间选择器)、time(日期选择器)、region(省市区选择器);

问题说在前面,同一个页面使用多个普通选择器遇到了问题,选择一个选项,其他选项也跟随着改变了。

代码如下:

因为默认索引值(也叫“下标”)都是index,绑定事件也只是改变了index。所以改变一个选项,其他选项都跟着改变了。

首先想到的解决办法就是自定义不同的索引值index1、index2,、index3,分别绑定不同的时间bindchange1、bindchange2、bindchange3改变其对应的索引值。

代码如下:

这样一个页面多个picker的问题就解决了,但是现在又发现了一个新的问题:

为什么多个picker会出现相互影响的问题?比如在第一个选择器选择了3,剩下的选择器点进去默认都是从第3个开始?” 小程序开发工具中的确存在,看了社区的帖子,才知道这个是官方的bug,目前还没有修复。

在这里使用了多个picker,可以想到使用wx:for循环,那么为了渲染方便,数据就要修改为对象的数组。

wx:for绑定数组objArray,当前项的下标变量名默认为index,数组当前项的变量名默认为item,为了区分选项option中的下标

使用 wx:for-item 可以指定数组当前元素的变量名为itm,使用 wx:for-index 可以指定数组当前下标的变量名为idx。

关键点是:自定义一个属性对应当前下标 data-current=“{{idx}}”,绑定事件bindChange_select触发时判断出是哪个数组对象触发的,就改变该数组对象中的index值。

本文:微信小程序使用picker组件出现问题怎么解决的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:css怎么设置table边框的颜色下一篇:

3 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18