小程序的picker事件,当数据源不是一维数组而是object的时候获取数据

一、小程序picker使用

注意:

小程序的picker,更好的处理的select事件以及应对深层次的多级联动,对于单选的picker,最简单的就是选择数据和要展示的一 一对象,这样我们可以直接使用数据。

1展示的数据picker的数据图如下:
在这里插入图片描述

二、使用流程代码如下

1,在wxml中使用range-key可以更改为选项列表展示的数据,range-key是什么,在显示的数据这里就得写什么,我在range-key是“storeName”,所以StoreList[index].StoreName是我们选中以后需要展示的数据,代码如下:

 <picker name="idCard" class="selectPicker" bindchange="bindPickerChange" value="{{index}}" range="{{StoreList}}" range-key="StoreName">
        <view class="picker">
            选择门店:{{StoreList[index].StoreName}}
        </view>
    </picker>

2,wxml代码中StoreList接口返回的门店列表object对象,数据如下:
在这里插入图片描述

注意:要想获取到以上对象中的其中的某一条数据,我们最先想到的就是遍历,循环,可是这样一来会多出很多无用的标签。还会想到用foreach数据提炼出来,改成一维数组。但是对象中的数据ID没法对应了。

3,选中后的展示,和数据源(object对象)通过index来对应起来,对应的js如下:

bindPickerChange: function (e) {
        let that = this
        console.log('picker发送选择改变,携带值为', e.detail.value)
        this.setData({
            index: e.detail.value,
            //获取门店选中后的storeid
            StoreID:that.data.StoreList[e.detail.value].StoreID
        })
        //选择门店给StoreID重新赋值
        wx.setStorageSync('StoreID',that.data.StoreID)
        console.log('选择则门店的StoreID',that.data.StoreID)
    },
三、成功示例图如下

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值