您的位置:首页 > 移动开发 > 微信开发

微信小程序更换视图层数据this.setData

2018-01-26 13:01 671 查看
最近在写小程序页面是遇到一个问题,视图层数据从逻辑层调入后,修改逻辑层的数据后,视图层的引用数据不发生变化。

要怎么解决这个问题呢,这时候就需要用到setData的方法。

Page.prototype.setData()

setData 函数用于将数据从逻辑层发送到视图层,同时改变对应的 this.data 的值。

1、直接修改 this.data 无效,无法改变页面的状态,还会造成数据不一致。

2、单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据。

setData() 参数格式

接受一个对象,以 key,value 的形式表示将 this.data 中的 key 对应的值改变成 value。

其中 key 可以非常灵活,以数据路径的形式给出,如 array[2].message,a.b.c.d,并且不需要在 this.data 中预先定义。

1、视图层

<view class="text" bindtap="changeText">
{{text}}
</view>


2、逻辑层

Page({
data: {
text: 'init data',
array: [{text: 'init data'}],
object: {
text: 'init data'
}
},
changeText: function() {
// this.data.text = 'changed data'  // bad, it can not work
this.setData({
text: 'changed data'
})
}


如直接为text赋值是无法改变页面的{{text}}值的,只有使用setData()方法才能同步页面数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: