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
});
正确用法
- 使用一个变量等于你要赋值的对象中的字段,改写成字符串格式
- 然后使用’[ ]'这个符号扩住变量进行赋值就可以了
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