微信小程序使用setData修改数组中的指定下标的属性值

因为小程序中分有逻辑层和渲染层等。所以需要用setdata函数,渲染到视图界面。普通的修改属性是通过this.setData({aa:true})的方法设置,但是本人遇到一种情况,需要通过下标区改变数组某一项中的某属性的值,方法如下:
结构:

// list中的标签按钮,选中一个亮起、再次点击灯灭的效果
<view class="'r_no' {{ item.checked==true ? 'active_r_no' :''}}" 
                    wx:for="{{rightRoomList}}" wx:key="index" 
                    data-obj="{{item}}" data-index="{{index}}"
                    bindtap="chooseRoom"
   >{{item.name}}</view>

js:

roomData:[
            {id:238, name: 'B1',children:[{id: 268,name:'B1_1',checked: false},{id: 269,name:'B1_2',checked: false},{id: 280,name:'B1_3',checked: false},{id: 281,name:'B1_4',checked: false},{id: 282,name:'B1_5',checked: false},{id: 283,name:'B1_6',checked: false},{id: 284,name:'B1_7',checked: false}]},
            {id:243, name: 'F2',children:[{id: 291,name:'F2_1',checked: false},{id: 292,name:'F2_2',checked: false},{id: 293,name:'F2_3',checked: false},{id: 294,name:'F2_4',checked: false},{id: 295,name:'F2_4',checked: false}]},
],
chooseRoom(e){
        let index = e.currentTarget.dataset.index
        let checkProp = "rightRoomList[" + index + "].checked"
        if(this.data.rightRoomList[index].checked){
            this.setData({
                [checkProp]: false
            })
        }else{
            this.setData({
                [checkProp]: true
            })
        }
 }

备注:通过let checkProp = "rightRoomList[" + index + "].checked"获取点击的对应下标的标签的属性
打印如下
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值