zoukankan      html  css  js  c++  java
  • 小程序setData()使用和注意事项

    注意:

    1. 直接修改this.data,而不调用this.setData(),是无法改变当前页面的状态的,会导致数据不一致
    2. 仅支持可以JSON化的数据
    3. 单次设置的数据不能超过1024KB,尽量避免一次设置过多的数据
    4. 不要把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)
          }
        })
      }
    })

    参考链接:https://juejin.im/post/5cf244405188252d18205def 

     
  • 相关阅读:
    黑盒测试用例设计方法
    摄像头--用例设计
    单元测试框架unittest
    ES集群启动流程
    ES 系统模型
    HBase 体系结构
    HBase 数据模型
    引用中间件导致的OOM问题调查
    BeanDefinition注册逻辑解析
    spring xml 解析bean配置文件为beanDefinition过程
  • 原文地址:https://www.cnblogs.com/lfri/p/11974092.html
Copyright © 2011-2022 走看看