uniapp 返回上一页时数据自动刷新
完整代码如下
onNavigationBarButtonTap(option) {
if (option.text == '保存') {
console.log("保存成功", this.polo);
this.$http.post(
"/stadium-estimate/edit", {
"stadium_id": this.polo.stadium_id,
"stadium_name": this.desc},(res) => { uni.showToast({
title: "保存成功",
duration: 2000,});
setTimeout(() => {
// 上一页重新请求数据 刷新
let pages = getCurrentPages(); // 当前页面
let beforePage = pages[pages.length - 2]; // 上一页
//返回上一页uni.navigateBack({})
uni.navigateBack({
success: function() {
// 执行上一页的demand方法(该方法是上一页请求数据的方法)
beforePage.demand(); }
});
}, 1000)
})
}
}
上一页代码如下
onLoad(option) {
this.uid = option.id;
// demand方法
this.demand();
}
mounted() {}
// 请求数据
demand() {
this.$http.get(
"/stadium-estimate/info", {
"id": this.uid
},
(res) => {
this.getUserList = res.Data
})
}
解释
- uniapp中getCurrentPages()方法可以获取当前页面的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。
- pages[pages.length - 1],为当前页。(因为数组下标从0开始,所以需要减1)
- let beforePage = pages[pages.length - 2],为获取上一页。
- uni.navigateBack()为返回上一页。
- beforePage.onLoad()为调用上一页的onLoad方法(onLoad方法就是上述在onLoad中调用的请求数据demand()方法)