微信小程序 setData的小知识

微信小程序 setData的相关知识

在实际的小程序开发过程当中,经常会遇到下面的这种情况

有一组数据swiperList

 

data: {
 swiperList: [{
      id: 0,
      type: 'image',
      url: 'https://7368-shuyuabn-9gke6t6k962d48ca-1304045188.tcb.qcloud.la/image/6.JPG?sign=39d14c3902ca802c5bbdca9487c4dfc8&t=1612537023',
      yiyan: '没有无聊的人生,只有无聊的人生态度',
      form: '刘瑜',
      iflike: "false"
    }, {
      id: 1,
      type: 'image',
      url: 'https://7368-shuyuabn-9gke6t6k962d48ca-1304045188.tcb.qcloud.la/image/1.JPG?sign=6a578b89d06a74141a01b35b26684e04&t=1612536951',
      yiyan: '没有任何一种逃避能得到赞赏,喜欢就去追,饿了就吃饭,管他是失败或是发胖',
      form: '',
      iflike: "false"
    }]
}

 

 

 

此时 如果我们想要动态改变swiperList内任意一组数据中的iflike应该怎么做呢?

首先贴一下html标签

<block wx:for="{{swiperList}}" wx:key class="{{cardCur==index?'cur':''}}">
    <view bindtap="like" data-likeid="{{item.id}}"> //我们通过循环swiperList获取其item 将内部的id绑定到like事件上
</block>

 js代码:

like: function (event) {
    const that = this
    let likeid = event.currentTarget.dataset.likeid  //绑定的like事件
    var a = `swiperList[${likeid}].iflike`
    console.log(a)
    if (that.data.swiperList[likeid].iflike=== "false") {
      that.setData({
      [a] : "true",
      })
    } else if (that.data.swiperList[likeid].iflike=== "true") {
      that.setData({
        [a]: "false",
      })
    }
    
    console.log(that.data.swiperList[likeid].iflike)
  }

在setData时swiperList[likeid].iflike的语法无法实现的

所以在这里,首先我们定义a = `swiperList[${likeid}].iflike`,这样后面setData的时候就可以直接用[a]去替换原本需要实现的  swiperList[likeid].iflike。

 

 

这样我们就实现了需要的功能了

 

 

 

 

posted @ 2021-02-09 20:16  Mr、Kr  阅读(206)  评论(0编辑  收藏  举报