在做购物车的时候会遇到选中和非选中某一项,以前的做法是拿到数据后先循环数据数组添加一个值为false的bull值,
当点击选中(非选中)执行函数时以前的做法是拿到当前的下标,然后改变数组此下标对象里对应的bull值,最后
this.setData({
list:list
});
相当于 把整个数组 渲染了一遍(虽然他有缓存机制,只会改变你改动的部分视图),但是还是感觉消耗性能,
最后投机取巧 换了一种思路:
let string = "riderCommentList[" + e.target.dataset.index + "].selected"
console.log(string)
console.log([string])
this.setData({
[string]: !this.data.riderCommentList[e.target.dataset.index].selected
})
riderCommentList代表数组,selected就是那个要改变的bull值,原理就是利用this.data是一个对象,可以支持.语法和[]取值法