在H5页面我们只需下面这样,但是打包成APP是无效的app需要单独加上一个.$vm
const currentPages = getCurrentPages();
const currentPage = currentPages[currentPages.length - 1];
currentPage[funName] && currentPage[funName]();
最终代码,细心的朋友会发现,下面获取的currentPage,H5和APP是不同的,这是因为app端是先改变路由再跳转页面,而H5端是先跳转页面再改变路由(CurrentPages喻为路由)
/*** 返回上一页且调用上一页方法* @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');
}