微信小程序中使用this.data和this.setData给数据赋值放入区别及使用方法

this.data和this.setData区别

  • this.setData({})

this.setData({})用于将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data 的值(同步)。
通俗点讲:就是你用this.setData({})改了js文件里面的data的值,你页面中用到这个值的地方也会一起自动更换了,页面自动显示最新数据

  • this.data
    用this.data而不用this.setData({})会造成页面内容不更新的问题,他只会更新逻辑层的数据,页面的显示不会自动更新到最新的值

总的来讲

  • 你要想更新数据后页面的对应数据也要自动更新的话,就用this.setData({})
  • 只是在js文件里面使用,不会再视图层(显示给用户的页面)出现,用this.data就可以

this.setData({})给数组和对象赋值

在具体的实践过程中,遇到一个问题,我想要更改的数据是一个数组中的一个元素或者是一个对象时(里面有很多属性字段)中某一个字段时,使用时会报错

给对象中字段赋值错误用法:

this.setData({  
  userInfo.userName:res.result.data[0].userName   
});

正确用法

  1. 使用一个变量等于你要赋值的对象中的字段,改写成字符串格式
  2. 然后使用’[ ]'这个符号扩住变量进行赋值就可以了
var userName = 'userInfo.userName';
	that.setData({   
		[userName]: res.result.data[0].userName
	})  

给数组中元素赋值错误用法:

this.setData({  
  item[0].name: e.detail.value   
});

正确用法

var name = "item["+i+"].name";  
this.setData({  
  [name]: e.detail.value   
});

如有错误欢迎指正O(∩_∩)O

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值