微信小程序通过picker获取选中的值

本文介绍了微信小程序中使用picker组件时如何获取并显示类目选择的数据。针对从picker获取到的是数组下标而非实际数据的问题,提出了通过设置objectArray及利用this.data.array[e.detail.value]来正确获取和展示选中项的解决方案。
摘要由CSDN通过智能技术生成

有源码
微信小程序的picker类型很多,时间获取比较好获取,直接e.detail.value就可以获取,但是像很多是类别的获取,这样就很难获取了,因为你的e.detail.value获取到的是数组的下标,这样你无法获取你想要的数据,这样就导致无法和后台交互,下面我用一个具体的实例来讲一picker获取数组的数据:做的就是车位预约申请:
在这里插入图片描述
第一个问题:
选中数据但是无法再前段显示选中的数据(一定得加objectArray)

 data: {
    array: ['标间:168', '大床房:198', '商务房:268', '总统套房:368', '三人间:208', 'vip套房:108'],
    objectArray: [
      {
        id: 0,
        name: '标间:168'
      },
      {
        id: 1,
        name: '大床房:198'
      },
      {
        id: 2,
        name: '商务房:268'
      },
      {
        id: 3,
        name: '总统套房:368'
      }
      ,
      {
        id: 4,
        name: '三人间:208'
      },
      {
        id: 5,
        name: 'vip套房:108'
      }
    ],
    index: 0,

然后通过setdata给前段返回获取的下标

 booktype:function(e){
    console.log(e.detail.value)
    this.setData({
      index: e.detail.value
    })
    console.log(this.data.array[e.detail.value])
  },

这样就可以将选中的数据在前段显示了
第二个问题就是:
获取的是下标,我们想要数组的数据,这时候你e.detail.value没有什么用。你要注意到你的数组在data里边,所以你需要data.array[e.detail.value],本以为这样就成功了,但是这是js语言,data无法直接获取,需要用this获取上一层对象(不理解的话看一下js语言吧),这样就可以直接获取了

this.data.array[e.detail.value]

现在就可以拿到你的数据了。
最后我分享一下完整的代码:
wxml


<view class="ar_cont">
<button  class="ar_book">车位申请</button>
<text>\n</text>


  <text class="ar_cont_h1">车位号
  • 9
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1029179954

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值