微信小程序 在异步的success方法中使用this.setDa

2018-07-27  本文已影响158人  守星的犬

比如page的data里有一个message,想要在执行wx.request成功的时候修改它的值

 data: {
    message:"hi~"
  },

一般很容易这样写:

 wx.request({
    url: 'https://www.some.com/user',
    method:'POST',
    data: {
        code: res.code
    },
    header: {
        'content-type': 'application/json' 
    },
    success: function (res)     {
        console.log(res.data);
        this.setData({ message: 'success' });   //错误的写法      
    }
})

上面 this.setData中的this对象已经不是page了。修改一下,正确的代码:

 var that = this; //把page对象赋值给新建的对象

 wx.request({
    url: 'https://www.some.com/user',
    method:'POST',
    data: {
        code: res.code
    },
    header: {
        'content-type': 'application/json' 
    },
    success: function (res)     {
        console.log(res.data);
        that.setData({ message: 'success' });   //这里用that
    }
})
上一篇下一篇

猜你喜欢

热点阅读