[微信小程序] this.setData()修改数据的各个类型属性值(对象、数组、字符串。。。)

一般情况下

page({
    
     
  data:{
    
     
     s1:{
    
    a:"",b:"b"} 
 },
 changeData:function(e){
    
    
 
     var cData=this.data.s1; 
     
     cData.a="1";//先修改json值

     this.setData({
    
     //再set值
		s1:cData 
     }) 
    } 
})

这种this.setData()的方式性能体验差

开发微信小程序时,使用setData修改data中数据时,针对各种情况的解决方案如下:

data:{
    
    
	code:'9527',
	baseInfo:{
    
    
		name:'夏尔',
		age:19
	},
	family:[{
    
    
		name:'大头爸爸',
		age:'46'
	},{
    
    
		name:'美丽妈妈',
		age:'45'
	}]
}

一、直接修改data的某个属性

this.setData({
    
    
	code:'007'
})

二、修改data里的数组或对象的属性

this.setData({
    
    
	'baseInfo.age':24
})

三、根据条件有选择性的改变(重点)

假设某种情况要根据条件改变某个特定值的某个属性,那么就需要先将要改变的属性转换成字符串,再用中括号括起来就可以了。

//假设改变对应index的某个属性值

var temp_str='this.data.family['+index+'].age';
this.setData({
    
    
	[temp_str]:44
});

————————————————
版权声明:本文为CSDN博主「I-T枭」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hahahhahahahha123456/article/details/100552876

猜你喜欢

转载自blog.csdn.net/iChangebaobao/article/details/106668800