一个list怎么用$set去新增一个属性

我用list遍历一个列表,每个列表有一个checkbox但是动态绑定checkbox不生效 原因大概是这样 请问怎么用$set去为list每一项新增一个check:false 属性

<u-checkbox-group>
   <u-swipe-action v-for="(item, index) in bankCard" :key="index">
    <view class="type-box">
     <view style="width: 100%;">
      <view class="bank-card-box">
       <view>{{item.bankName}}</view>
      <view style="width:30%;">
       <u-checkbox size="34rpx" shape="square" active-color="#008FBA" v-model="item.flag" />
      </view>
      </view>
     </view>
    </view>
   </u-swipe-action>
</u-checkbox-group>



getList() {
    this.$u.api.subject.List().then(res => {
     this.bankCard = JSON.parse(decrypt(res))
     this.bankCard.forEach(item => {
        // item.check = false // 这样设置不响应
        this.$set() // 请问这边怎么为每项item设置一个 check:false属性
     })
    })
   },
阅读 1.9k
2 个回答

其实你应该在一开始的时候直接赋上值:

this.bankCard = JSON.parse(decrypt(res)).map(e => Object.assign({ check: false }, e));
getList() {
    this.$u.api.subject.List().then(res => {
      this.bankCard = JSON.parse(decrypt(res))
      this.bankCard.forEach(item => {
          item.check = false // 继续这样设置
      })
      // 更新数组某个元素的值后,可以通过下面的写法触发Vue的更新
      this.bankCard = [...this.bankCard]
    })
},
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题