微信小程序开发中遇到的问题记录_1
使用wx.uploadFile()方法时,遇到一个问题:
wx.uploadFile({
url: "xxx",
filePath: file[i].url,
name: 'file',
header: {
'content-type': 'multipart/form-data',
'token': token,
},
success (res) {
file[i].status = 'done'
file[i].serverUrl = JSON.parse(res.data).msg
this.setData({
fileList : file
})
}
在这段代码中,程序报错如下:
ReferenceError: fileList is not defined
查阅发现:
wx.uploadFile({
...
success(res){
this.data
}
})
这段代码中的this是指向success闭包的,这种语法是错误的,有两种解决办法:
- 使用that = this
var that = this
wx.uploadFile({
...
success(res){
that.data
}
})
- 使用箭头函数
wx.uploadFile({
...
success : (res) => {
this.data
}
})
这是箭头函数的特点之一:没有独立的 this、arguments 和 super 绑定,并且不可被用作方法。