<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的时候,点击删除选中的这个,依旧是选中状态,其实说明还是复用了的?
这是什么原因?
加了key 其实目的是为了取消复用的吧,但是说白了还是复用了
这问题好高深,完全不懂,试了一下,就结果而言, 当清除了数组中的某一个元素时,键时会重排序的,即 0 1 2 3 4 5 删除第3个 会重新排序成 0 1 2 3 4,而不是 0 1 2 4 5,小程序在数据更新后,判断选中状态好像是依赖内存位置的。