6 回答

TA贡献1831条经验 获得超10个赞
先设置为 响应式数据
for (let i = 0; i < _this.myCollectList.length; i++) {
_this.$set(_this.myCollectList[i], 'selected', false)
}
此时可以改变数据,视图就会改变
selectMyCollectList(item,index) {
item.selected = !item.selected;
}
通过this.$set 设置为响应式数据,数据改变后,视图就会变化

TA贡献2011条经验 获得超2个赞
selectMyCollectList(item,index) {
item.selected = !item.selected;
}
这个方法是没有问题的,可以这么试试打印到页面看看数据变化,应该是其他地方有问题。
<span>{{item.selected}}</span><i class="el-icon-check" v-show="item.selected"></i>

TA贡献1942条经验 获得超3个赞
点击改变数据,得改变data里面的数据,这个方法改下:
selectMyCollectList(item,index) {
this.myCollectList[index]['selected']=!this.myCollectList[index]['selected'];
}

TA贡献1818条经验 获得超3个赞
题主用的是老版本的vue吗?我最近面试的时候也碰到这个问题了,但是我的页面数据是实时更新的,用题主的代码在我项目里面跑也没出现页面不更新的问题不知道为什么。
添加回答
举报