如何异步改变dada的值
发布于 7 年前 作者 zengwei 13541 次浏览 来自 问答

请问下,数据绑定这里

page.data里设置的数据。如果在异步事件里改变呢。

我要通过网络请求改变data的值,通知前台刷新。

4 回复

xxx:function(){

    let that = this;

    xx().then(function(x){

        that.setData({

            x

        });

    },()=>{});

}

Page({
  data: {
    count: 1
  },
  add: function(e) {    this.setData({
      count: this.data.count + 1
    })
  }
})

使用setData,代码如上。

一个重点:不管异步同步,都不要直接去设置Page.data这个属性,而要用setData()方法。

示例:

Page({
   data: {
     mydata: {}
   },
 
   testFunc: function () {
    var that = this
 
    wx.request({
       url: 'https://......',
       success: function(res) {
           that.setData({
               mydata: res.data
           })
       }
    })
  }
})

setData 本身驱动 View 更新就是异步的

回到顶部