uniapp返回上一页并刷新

3,973 阅读1分钟

在uniapp项目中内页面跳转有需求返回到上一页并刷新的操作,下面直接上代码。

let pages = getCurrentPages(); // 当前页面
let beforePage = pages[pages.length - 2]; // 上一页
uni.navigateBack({
    success: function() {
        beforePage.onLoad(); // 执行上一页的onLoad里面的方法方法
    }
});

解析:

在uniapp 中 getCurrentPages() 方法获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。

pages[pages.length - 1],为当前页。(因为数组下标从0开始,所以需要减1)

let beforePage = pages[pages.length - 2],为获取上一页。

uni.navigateBack() 为返回上一页。

beforePage.onLoad()为调用上一页的onLoad方法。

上面代码的含义为:当返回上一页的方法执行成功后,调用上一页的onLoad方法。

注意:上面方法报错试一下下面的方法:

let pages = getCurrentPages();
 uni.navigateBack({
	 delta: 1,
	 success() {
	 //pages.length-1 即最后一个为当前页,所以取当前页面的上一级
		 pages[pages.length - 2].$vm.init(); // init 是上一个页面的方法名称
	 }
 })