常规使用使用
computed: {
...mapGetters({
get_labelList: "label/get_labelList",
select_labelList:'label/select_labelList'
}),
遇到问题
按道理来说没有问题,计算属性缓存,mapGetters也是有缓存功能,数据改变,正常就该显示
但是结果却相反,computed值有改变,但是视图层没有改变
造成原因
网上查找了一番,给出的解释是由于 JavaScript 的限制,Vue 不能检测以下变动的数组
解决思路
数组有一些方法可以导致视图更新,修改值是set与splice,set我试了没成功,希望好心人可以告诉我为啥呢?
失败的
this.$set(state.labelList[tagsIndex].tags,idx,tag)
Vue.set(state.labelList[tagsIndex].tags,idx,tag)
成功的,是使用splice
state.labelList[tagsIndex].tags.splice(idx,1,tag)