注意:
- 直接修改this.data,而不调用this.setData(),是无法改变当前页面的状态的,会导致数据不一致
- 仅支持可以JSON化的数据
- 单次设置的数据不能超过1024KB,尽量避免一次设置过多的数据
- 不要把data中的任何一项的value设为undefined,否则这一项将不能被设置,可能会有潜在的问题
Page({ /** * 页面的初始数据 */ data: { value:"初始值" //定义一个变量value,赋值为:“初始化” }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { } })
直接在wx:request()的success回调函数中使用this.setData()会报这样一个错误:
因为这里的this是相对于wx:request()的当前对象
解决:因为这里的wx:rewuest()是在页面加载时调用,所以我们可以在onLoad()中定义一个变量that ,将this赋值给that,那么此时的that代表相对于onLoad()的当前对象,然后在success回调函数中直接使用that.setData()即可。
这是设置Page data的示例:
Page({ /** * 页面的初始数据 */ data: { score_list: null, guanka_list: null, currentTab: 0 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { var that = this //定义一个全局变量that wx.request({ url: app.globalData.baseUrl + "query/rankByScore", type: ‘GET‘, dataType: ‘json‘, success: function (res) { that.setData({ score_list: res.data.data }) console.log(1, res) } }) } })