点击后,对象数组至少有一个元素的show值为true

微信小程序上使用的例子:

wxml:
    <block wx:for="{{arr}}" wx:key="index">
      <view class="name {{item.show ? '' : 'disabled'}}" bindtap="bindChange" data-item="{{item}}" data-index="{{index}}">{{item.name}}</view>
    </block>
 
  js:
 
  Page({
    data: {
    arr :[
      {
        name: 'xixi',
        show: true,
      },
     {
        name: 'Lucy',
        show: true,
      },
     {
        name: 'Lily',
        show: true,
      },
     ]
    },
    bindChange(event) {
       let { index, item } = event.currentTarget.dataset;
       let arr = this.data.arr;
       item.show = !item.show;
       arr[index].show = item.show;
       let flag = arr.findIndex((item) => item.show == true) == -1;
     if (flag) {
        item.show = true;
       }
       let arrNew = 'arr[' + index + ']'
       this.setData({
          [arrNew]: item,
       });
     }
  })

  

posted @ 2021-08-23 15:52  wupp  阅读(132)  评论(0)    收藏  举报