微信小程序更换视图层数据this.setData
2018-01-26 13:01
671 查看
最近在写小程序页面是遇到一个问题,视图层数据从逻辑层调入后,修改逻辑层的数据后,视图层的引用数据不发生变化。
要怎么解决这个问题呢,这时候就需要用到setData的方法。
1、直接修改 this.data 无效,无法改变页面的状态,还会造成数据不一致。
2、单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据。
其中 key 可以非常灵活,以数据路径的形式给出,如 array[2].message,a.b.c.d,并且不需要在 this.data 中预先定义。
1、视图层
2、逻辑层
如直接为text赋值是无法改变页面的{{text}}值的,只有使用setData()方法才能同步页面数据。
要怎么解决这个问题呢,这时候就需要用到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()方法才能同步页面数据。
相关文章推荐
- 微信小程序提示this.setData is not a function解决方案之一
- [微信小程序]this.setData , that.setData , this.data.val三者之间的区别和作用
- 微信小程序中的坑:thirdScriptError this.setData is not a function;
- 微信小程序 报错:this.setData is not a function
- 微信小程序 this.setData is not a function
- 微信小程序 this.setData is not a function
- 微信小程序 this.setData is not a function;父元素获取
- 微信小程序报错:this.setData is not a function的解决办法
- 论微信小程序的坑:thirdScriptError TypeError: this.setData is not a function
- 微信小程序 this.setData is not a function
- 微信小程序 this.setData is not a function
- 微信小程序 this.setData is not a function
- 微信小程序中this.data与this.setData的区别详解
- 微信小程序 this.setData is not a function
- 微信小程序 this.setData is not a function
- 小程序给界面赋值报错:this.setData is not a function
- 【微信小程序笔记-2】框架-视图层-WXML(数据绑定、渲染、引用)
- 【微信小程序+ES6新特性应用】通过对类的操作来处理数据后显示在视图界面
- 小程序this.setData is not a function;api request success callback function解决方法
- 微信小程序解密encryptedData数据字符串,php中隐形字符65279(utf-8的BOM头)问题