给vue的数据添加新属性后实时响应失效问题

for( var i in data){
//data[i]["isShow"] = true;
app. $data. testData. push( data[ i]);
app. $data. testData[ i][ "isShow"]= true;
//app.$set(app.$data.testData[i],"isShow","true")
console. log( app. $data. testData);
}

该处代码的属性“isShow”在页面是不会实时响应的,昨天刚遇到这个问题,突然发现页面v-if绑定的“isShow”没响应了,然后开始找原因,定位到问题是当在上面循环中先将isShow属性添加到返回数据data上就不会出现这个问题了,这时候想到肯定使这2个操作导致最后的app.$data.testData不一样,在浏览器打印发现:

app.$data.testData.push(data[i]);
app.$data.testData[i]["isShow"]= true; 下,isShow属性没有get和set方法


data[ i][ "isShow"] = true;
app. $data. testData. push( data[ i]);

下,浏览器打印:


说明属性的响应需要有这2个方法存在。

用$set添加属性方法:

app. $set( app. $data 响应. testData[ i], "isShow", "true") //(data,key,value)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值