uni.requestPayment的success里面不能调用其他函数吗?其他地方都可以通过this.recharge()调用,在uni.requestPayment里面使用报错,this也用不了。
requestPayment(params) {
uni.requestPayment({
nonceStr: params.nonceStr,
package: params.package,
paySign: params.paySign,
signType: params.signType,
timeStamp: params.timeStamp,
success(res) {
this.recharge()
uni.$showSuccMsg('支付成功!')
},
fail(err) {
uni.$showErrorMsg('支付失败!')
console.error('pay fail', err)
}
})
},
这里this的问题,要么你写 success:res=>{}
你这this指向谁
this的指向问题
success: res => { this.recharge() }
了解下箭头函数 或者外面定义const that = this 这跟支付没关系,碰巧了。上完厕所回来报错了,就说微信不让上厕所?
function()/() 普通函数指向最后调用他的对象,所以this指向变了导致你不能调用
()=>箭头函数 指向定义时的对象,,所以此时的this能调用recharge()
感谢大家,之前不太理解const that = this的意义,学习到了。对箭头函数、this指向 也有更多的了解了