微信小程序setData使用方法以及注意事项

1688源码 | 2018-05-31 09:47:13 |

 今天在微信小程序中,下拉刷新的时候,想将js中的变量直接用到wxml文件中,但是却一直不成功。

我是在app.js中直接定义了一个loginstatus的变量。

globalData: {
    loginstatus:0
}

 

然后在a.js中改变了它的值。

loginstatus=1;

想当然的,以为这样下拉刷新后就会反映到wxml文件中了。

其实这中间,还缺少很多必要的。

首先应该在a.js的顶部加上

var app = getApp();

因为我是在app.js中定义的,所以要用到这个变量的页面,必须在顶部加上getApp()才行。

然后,再使用

var loginstatus = app.globalData.loginstatus;

最重要的是要使用setData来改变页面信息。

完整代码如下:

//下拉刷新事件
var app = getApp();
Page({
    onPullDownRefresh: function () {
        var loginstatus = app.globalData.loginstatus;
        loginstatus=1;
        this.setData({
          loginstatus: loginstatus
        });
        wx.stopPullDownRefresh();
    }
})

 

需要注意的有两点。

1、如果使用this.data直接修改,而没有调用this.setData是改变不了页面的状态的,还有可能会造成数据不一致。

之前就遇到过,我直接使用this.data.num = 1,以为就可以了。

其实还需要setData来改变才行。

this.setData({
  num: this.data.num
})

 

2、微信小程序中setData单次设置的数据不能超过1024KB,使用时请避免设置过多的

精品源码
  • 织梦万能API 百度小程序插件

    惊爆价¥400原价¥800

    立即购买
  • 我爱登报网 百度小程序源码 织梦CMS后台

    惊爆价¥520原价¥1040

    立即购买
  • 索娜根布黑枸杞 百度小程序源码 织梦CMS后台

    惊爆价¥520原价¥1040

    立即购买
视觉焦点

推荐文章

微信小程序插件使用错误cannotread property 'version' of undefined

微信小程序使用ES6构建面向对象的JS代码及访问服务器API获取数据

最新文章

关注我们

微信扫一扫,关注更多精彩

  • 1688源码公众号
    全面掌握源码一手资讯

  • 1688源码公众号
    精彩活动,推送提醒