微信小程序picker组件关于objectArray数据类型绑定

一、前言:

  我发现很多的同学都在抱怨说微信小程序的picker的mode = selector/mode = multiSelector 无法实现Object Array数据类型的绑定,其实很多人就想要和html中的下拉选中的通过选中获取vaule中的属性值,其实认真查看微信picker组件详解的都知道其实是可以实现的,只不过微信给的实例是array的实例而object array实例是留给大家去动手的哟,在这里我主要介绍的mode=selector 的objectArray实现。

二、介绍:

普通选择器:mode = selector

属性名类型默认值说明 
rangeArray / Object Array[]mode为 selector 或 multiSelector 时,range 有效 
range-keyString 当 range 是一个 Object Array 时,通过 range-key 来指定 Object 中 key 的值作为选择器显示内容 
valueNumber0value 的值表示选择了 range 中的第几个(下标从 0 开始) 
bindchangeEventHandle value 改变时触发 change 事件,event.detail = {value: value} 
disabledBooleanfalse是否禁用 
     

微信picker组件详解:https://developers.weixin.qq.com/miniprogram/dev/component/picker.html?search-key=picker

首先我的数据格式是:[{ name: '服务质量', id: 20 }, { name: '服务品质', id: 24 }, { name: '服务速度', id: 25}]

.wxml页代码:

//其中range为数据源,value为下标索引,bindchange为change改变事件
<picker range='{{type}}' value='{{idx}}' bindchange='Change' range-key="name" data-id='{{type[index].id}}'>
<view class='picker'>{{type[index].name}}</view>
</picker>

 .js代码:

 /**
   * 页面的初始数据
   */
  data: {
    type: [{ name: '服务质量', id: 20 }, { name: '服务品质', id: 24 }, { name: '服务速度', id: 25}],
    index: 0,//索引
  },
  Change: function (e) {
    方法一:
通过对应数组索引访问:
consoel.log(type[e.detail.value].id);
方法二: console.log(
'picker发送选择改变,索引值为', e.detail.value) console.log("选中的id值:"+e.target.dataset.id) console.log(e); this.setData({ index: e.detail.value }) }

 

页面效果和输出结果:

转载于:https://www.cnblogs.com/Can-daydayup/p/10519964.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值