checkbox 复用的问题
发布于 6 年前 作者 mxiong 14930 次浏览 来自 问答

<checkbox-group>

      <view wx:for=’{{arr}}’ wx:key="{{item.id}}">

        <checkbox value=’{{index}}’ wx:key="{{item.id}}"/>

        <button data-index=’{{index}}’ bindtap=‘aa’>点击删除</button>     

      </view>

</checkbox-group>

arr:[

      { id: 1, name: ‘lisi’ },

      { id: 3, name: ‘xiaoliu’ },

      { id: 4, name: ‘xiaoming’ },

      { id: 5, name: ‘zhangsan’ },

      { id: 6, name: ‘wangwu’ },

    ]

aa(e){

    let index=e.target.dataset.index;

    let brr=[…this.data.arr];

    brr.splice(index,1);

    this.setData({

          arr:brr

    })

  },

当我选中一个checkbox的时候,点击删除选中的这个,依旧是选中状态,其实说明还是复用了的?

这是什么原因?

2 回复

加了key 其实目的是为了取消复用的吧,但是说白了还是复用了

这问题好高深,完全不懂,试了一下,就结果而言, 当清除了数组中的某一个元素时,键时会重排序的,即 0 1 2 3 4 5 删除第3个 会重新排序成 0 1 2 3 4,而不是 0 1 2 4 5,小程序在数据更新后,判断选中状态好像是依赖内存位置的。

回到顶部