delect:function(e){ console.log(e.currentTarget.dataset.aid) wx.showActionSheet({ itemList: ['删除该相册'], success:function(res){ if(res.tapIndex==0){ wx.cloud.callFunction({ name: 'delectAlbum', data:{ id: e.currentTarget.dataset.aid, } }).then(res => { wx.showToast({ title: "删除成功", icon: "success", success: res2 => { this.getData(); } }) }) } } }) }, 为什么以上微信小程序js代码出现以下报错TypeError: _this5.getData is not a function at Object.success (home.js:222)
时间: 2023-07-16 10:12:36 浏览: 106
这个错误提示是因为在 `wx.showToast` 的回调函数中,`this` 的指向已经发生了变化,不再是原本的组件实例,导致无法调用 `getData` 函数。要解决这个问题,可以使用箭头函数或者 `bind` 方法来绑定 `this` 的值,如下所示:
```
delect: function(e) {
console.log(e.currentTarget.dataset.aid);
wx.showActionSheet({
itemList: ['删除该相册'],
success: (res) => { // 使用箭头函数
if (res.tapIndex == 0) {
wx.cloud.callFunction({
name: 'delectAlbum',
data: {
id: e.currentTarget.dataset.aid,
}
}).then(res => {
wx.showToast({
title: "删除成功",
icon: "success",
success: res2 => {
this.getData();
}
})
})
}
}
})
},
```
或者:
```
delect: function(e) {
console.log(e.currentTarget.dataset.aid);
wx.showActionSheet({
itemList: ['删除该相册'],
success: function(res) {
if (res.tapIndex == 0) {
wx.cloud.callFunction({
name: 'delectAlbum',
data: {
id: e.currentTarget.dataset.aid,
}
}).then(res => {
wx.showToast({
title: "删除成功",
icon: "success",
success: function(res2) { // 使用 bind 方法
this.getData();
}.bind(this)
})
})
}
}.bind(this) // 使用 bind 方法
})
},
```
阅读全文