在H5页面我们只需下面这样,但是打包成APP是无效的app需要单独加上一个.$vm
js
const currentPages = getCurrentPages();
const currentPage = currentPages[currentPages.length - 1];
currentPage[funName] && currentPage[funName]();
最终代码,细心的朋友会发现,下面获取的currentPage,H5和APP是不同的,这是因为app端是先改变路由再跳转页面,而H5端是先跳转页面再改变路由(CurrentPages喻为路由)
js
/**
* 返回上一页且调用上一页方法
* @param {Object} funName 方法名
*/
export function back(funName) {
uni.navigateBack({
success: () => {
const currentPages = getCurrentPages();
if (currentPages.length >= 2) {
// #ifdef APP
// app 端是先改变路由再跳转页面
const currentPage1 = currentPages[currentPages.length - 1];
currentPage1.$vm[funName] && currentPage1.$vm[funName]();
// #endif
// #ifdef H5
// H5 端是先跳转页面再改变路由
const currentPage2 = currentPages[currentPages.length - 2];
currentPage2[funName] && currentPage2[funName]();
// #endif
}
}
});
}
/**
* 返回上一页且刷新(上一页有pullDownRefresh方法时)
*/
export function backRefresh() {
back('pullDownRefresh');
}