微信小程序选择器picker的range和range-key的用法

    xiaoxiao2022-07-04  552

    微信小程序picker的range和range-key的用法

    概述picker的range和range-key的用法1:在js文件中定义对象数组和下标2:在wxml中指定range和range-key 总结

    概述

    最近在学习微信小程序中发现,官网中对选择器picker控件的range存放的是对象数组objectArray的用法描述的不是很详细,经过一番研究对picker控件的range和range-key的用法简单坐下总结,以供参考。

    picker的range和range-key的用法

    这里只是对range中存放对象数组objectArray的讲解,至于range中存放数组array的情况官网API给的非常详细在这里我就不过多描述了,想了解的请参考微信小程序开发文档。

    1:在js文件中定义对象数组和下标

    Page({ /** * 页面的初始数据 */ data: { rangekey: 0,//用于记录选择器的下标 objectArray: [//选择器的对象数组 { id: 0, name: '梨', price: 13.6 }, { id: 1, name: '苹果', price: 18.6 }, { id: 2, name: '火龙果', price: 33.6 }, { id: 3, name: '苹果', price: 6.6 } ], }, /** * 普通选择器的bindChange事件 */ onObjArrayPickerChange(e) { console.log('picker onObjArrayPickerChange发送选择改变,携带值为', e.detail.value) this.setData({ rangekey: e.detail.value,//修改选中的下标 }) }, })

    2:在wxml中指定range和range-key

    <view class="section__title">objectArray 您选中产品的价格</view> <picker mode="selector" range='{{objectArray}}' range-key="{{'name'}}" value='{{objectArray[rangekey].value}}' bindchange='onObjArrayPickerChange'> <view class="picker">{{objectArray[rangekey].price}}元</view> </picker>

    重点分析:

    range='{{objectArray}}' 指定对象数组range-key="{{'name'}}" 指定 range-key,即指定使用objectArray中的 name属性来作为选择器中显示的内容,这里需要注意取出的属性外加了‘’号,即‘name’,引号不可少value='{{objectArray[rangekey].value}}' ,rangekey是js中定义的对象数组的下标,objectArray[rangekey]取出的是改下标的对象,如 {id: 1,name: '苹果',price: 18.6},而objectArray[rangekey].value中value值表示的是range-key中指定的属性,这里是name,即苹果。最终展示选中的内容{{objectArray[rangekey].price}} 元,仍然是通过数组的下标获取,只是这里取出的是对象,.price取出对象中的价格。

    总结

    到此相信大家都已经明白了picker的range和range-key的用法,简单总结一下picker的range中存放的是objectArray时需要通过range-key去指定选择器中显示的内容,否则通过数组下标取出的是一个object对象。

    最新回复(0)