微信小程序 this.setData()
官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/performance/tips/runtime_setData.html
setData()函数用于将 data 从逻辑层传输到视图层,同时对应的改变this.data的值。
Object 以 key: value 的形式表示,将 this.data 中的 key 对应的值改变成 value。
setData使用时this指向问题
this.setData()中this应该指向page(全局),当this.setData()出错时是因为this没有指向全局
解决办法:全局定义变量 = this(让指针一直指向全局)
1、全局定义变量 = this(var that = this)
2、使用箭头函数
setData使用注意事项
1、直接调用this.setData(),修改this.data是无法改变当前页面的状态的,会导致data数据发生改变但是视图不会渲染(小程序的逻辑层和视图层是两个独立的运行环境、分属不同的线程或进程,不能直接进行数据共享)
2、仅支持可以JSON化的数据,JSON的值不能为undefined,因此不要把data中的任何一项的value设为undefined
3、单次设置的数据不能超过1024KB,尽量避免一次设置过多的数据