1
2
3
4
5
6
7
8
9
10
11
12
13
let callback_succ_func = function(res){
// console.log('支付成功')
// window.location.reload()                     user.GetOrderDetail(this.id).then(result => {
console.log(result, '-----订单详情----');
this.info = result;
});
// uni.redirectTo({
// url:'/pages/order/detail?orderid='+id
// })
// window.location.href =
//  'http://xxxxxxxxxxx/park/?#/pages/order/detail?orderid='+id
common.Toast('支付成功!')
};

在公众号内嵌h5应用中,调用微信支付,传入的支付成功回调函数时,想要完成刷新订单详情页面,来把未支付状态更新为已支付。尝试如下方法均无法刷新:

调用window.location.reload() //刷新失败

调用 uni.redirectTo({
url:'/pages/order/detail?orderid='+id
})//刷新失败

调用window.location.href =
'http://xxxxxxxxxxx/park/?#/pages/order/detail?orderid='+id//仍然失败

解决办法:其实更新状态并不需要刷新页面,再次请求数据即可,即写了上述代码,测试仍然发现不刷新。原因在于传入的是一个函数,此时this的指向并不是这个页面,所以在函数上头定义let _this=this,然后把函数中的this替换成_this即可 更新数据。