一种在Page跳转中实现回调函数的思路
场景:
pageA是商品列表,pageB是商品编辑,pageA跳转到pageB保存之后需要更新pageA的数据。
当然跳转到pageB的还可能是其他页面
实现:
// pageA
Page({
data: {
// ...
},
editGoods: function(id) {
wx.navigateTo({
url: 'pageB?success=editSuccesss' // 把回调函数用字符串的方式告诉pageB
})
},
editSuccess() {
// ...处理回调
}
})
// pageB
Page({
data: {
// ...
},
onLoad: function(options) {
this.success = options.success
},
save: function() {
if (this.success) {
//获取上一个页面并执行回调
var pages = getCurrentPages()
pages[pages.length - 2][this.success]() // 回调时还可以增加参数
}
wx.navigateBack()
}
})
2 回复
我都是固定一个方法名字的。
doGoBackAndCallBack() {
let that = this;
var pages = getCurrentPages();
var currPage = pages[pages.length - 2]; //当前页面
if (currPage && currPage.callback && typeof currPage.callback == "function") {
currPage.callback({
deposit_id: that.depositAssureId,
});
}
setTimeout(() => {
wx.navigateBack({
delta: 1
});
}, 1000);
}