vue methods 里的方法改变不了data的值?

https://img2.mukewang.com/5ca6f7900001dc8d03000411.jpg

值是上图这样的数组,比较特殊的是我要改变value这个字段。

改变方法如下:

https://img.mukewang.com/5ca6f79200019ac206350224.jpg

但是其他的字段可以改变,唯独value这个一直改变不了。推测可能和value这个关键字有关系。


撒科打诨
浏览 5545回答 5
5回答

临摹微笑

直接改变数据里面的值vue是检测不到的,除非用push()pop()shift()unshift()splice()sort()reverse()所以你这个可以用this.$set(this.tranList,this.tranList[index],item+1)

阿波罗的战车

你目前发的代码没什么问题至于检测数组没问题forEach其实是:this.tranlist[0].value += 1 Vue对data进行了递归处理你这样改的是对象 所以没问题arr[0] = 1 改的是数组不行arr[0].name = 1 改的是数组里的对象可以

慕妹3146593

直接修改值是检测不到变化的需要用Vue的方法上代码import Vue from 'vue'Vue.set(this.tranList, 1, {value: 0,name: '',text: ''})

MMTTMM

你的数据是ajax获取的么?data初始化的时候tranList是不是设置的为null或者干脆就没有这个?如果在ajax之前没有定义这个属性,就不会监控这个属性,需要用this.$set('tranList',data)在ajax成功后赋值
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript