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

通常,我们在获取后台的数据字典要显示在页面的picker中,如上图所示,

但后台传过来的参数是以数组格式传过来的数据,里面是多项json结构的数据,

在picker中显示的只是每项json结构数据中的某一项,但需要给后台传的数据却是另一项,

例如:后台给我的数据是myAnnual这个数组,我在picker上显示的是每一项数据里面的label这项,但要给后台传的参数却是value这一项。

这时候,就要用到range和range-key这两个参数。

range是你要显示的数组,range-key是数组中你要显示的那一项,也就是图示里面的label,值得注意的是range="{{myAnnual}}"

range-key="{{'label'}}" ,range-key中的数据要加引号!!!!!才生效!

在页面的data中默认显示选择的下标,

在picker中显示的时候 {{myAnnual[isAnnual].label}},

在获取数据的时候,使用 value="{{myMarital[isAnnual].value}}"。

代码:


 
 
  1. Page({
  2. data: {
  3. isAnnual: 0, //收入状况默认选择的下标
  4. },
  5. //选择收入
  6. bindPicker1ChangemyAnnual: function(e) {
  7. console.log( 'picker发送选择改变,携带值为', e.detail. value)
  8. this.setData({
  9. isAnnual: e.detail. value
  10. })
  11. },
  12. //wxss里面
  13. <view class= "relation">
  14. <view class= "nameView">
  15. <text class= "tx1">收入状况</text>
  16. </view>
  17. <view class= "nameViewright">
  18. <view class= "image2">
  19. <image class= "image-2" src= "../../image/enter.png"></image>
  20. </view>
  21. <picker mode= 'selector' bindchange= "bindPicker1ChangemyAnnual" value= "{{myMarital[isAnnual].value}}" range-key= "{{'label'}}" range= "{{myAnnual}}">
  22. <view class= "txname">
  23. {{myAnnual[isAnnual].label}}
  24. </view>
  25. </picker>
  26. </view>
  27. </view>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值