为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

撒科打诨 2019-03-21 18:15:06
值是上图这样的数组,比较特殊的是我要改变value这个字段。改变方法如下:但是其他的字段可以改变,唯独value这个一直改变不了。推测可能和value这个关键字有关系。
查看完整描述

5 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

直接改变数据里面的值vue是检测不到的,除非用

  • push()

  • pop()

  • shift()

  • unshift()

  • splice()

  • sort()

  • reverse()

所以你这个可以用this.$set(this.tranList,this.tranList[index],item+1)


查看完整回答
反对 回复 2019-04-05
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

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

查看完整回答
反对 回复 2019-04-05
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

直接修改值是检测不到变化的

需要用Vue的方法

上代码

import Vue from 'vue'


Vue.set(this.tranList, 1, {


value: 0,

name: '',

text: ''

})


查看完整回答
反对 回复 2019-04-05
?
MMTTMM

TA贡献1869条经验 获得超4个赞

你的数据是ajax获取的么?data初始化的时候tranList是不是设置的为null或者干脆就没有这个?如果在ajax之前没有定义这个属性,就不会监控这个属性,需要用this.$set('tranList',data)在ajax成功后赋值


查看完整回答
反对 回复 2019-04-05
  • 5 回答
  • 0 关注
  • 5534 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信