在uni-app中,想要返回頁面時獲取參數。需要用到當前頁面的堆棧getCurrentPages()。
背景
要求:從頁面1跳轉到頁面2, 然后頁面2返回頁面1時代參數。
實現
在頁面2返回按鈕,或監聽返回事件時,執行方法。
1 reBack: function() { 2 let pages = getCurrentPages(); 3 if (pages.length >= 2) { 4 let curPage = pages[pages.length - 1]; // 當前頁面 5 let prePage = pages[pages.length - 2]; // 上一頁面 6 // #ifdef H5 7 prePage.$vm.param1 = 1; 8 prePage.$vm.param2 = 2; 9 // #endif 10 // #ifdef MP-WEIXIN || MP-QQ 11 prePage.setData({ 12 param1: 1, 13 param2: 2 14 }) 15 // #endif 16 uni.navigateBack(); 17 } 18 }
在頁面1的生命周期 onShow 監聽或獲取當前頁面的參數。
onShow: function() { let pages = getCurrentPages(); let curPage = pages[pages.length - 1]; // #ifdef MP-WEIXIN || MP-QQ console.log("param1", curPage.data.param1); console.log("param2", curPage.data.param2); // #endif // #ifdef H5 console.log("param1", curPage.$vm.param1); console.log("param2", curPage.$vm.param2); // #endif },
這里,當從頁面2返回頁面1時,輸出值為
param1 1param2 2
注:H5 和微信、QQ等小程序設置和獲取頁面參數的方法不同。