小程序之success回调函数中使用this.setData()问题

 写一个获取小程序用户信息的函数,在success回调函数里使用this.setData()更新数据时报错,源码及报错位置如下图所示。

小程序之success回调函数中使用this.setData()问题

 

  错误提示:

Cannot read property 'setData' of undefined;at api operateWXData success callback function
TypeError: Cannot read property 'setData' of undefined

  报错原因

success方法指向闭包,所以this属于闭包,由此在success回调函数里是不能直接使用this.setData()的,如果我们要使用的话,可以在闭包之外先把this赋值给另一个变量。

解决方案

小程序之success回调函数中使用this.setData()问题