一、頁面跳轉后刷新
頁面邏輯:我的頁面 點擊頭像---登錄彈窗---點擊去登錄---登錄后跳轉到我的頁面
存在的問題:沒有加載我的頁面接口
解決方案:
uni.switchTab({ url: this.backurl, success(){ let page = getCurrentPages().pop(); //跳轉頁面成功之后 console.log(getCurrentPages(),page); if (!page) return; page.onLoad(); //如果頁面存在,則重新刷新頁面 } })
二、情景描述:
從頁面A跳轉到頁面B
B頁面接收A頁面傳遞的參數
B頁面點贊操作,
從B頁面返回到A頁面 A頁面數據同步
解決方案: 在B頁面設置一個刷新頁面的標識 A頁面識別標識后更新數據
B頁面
onLoad(e) { this.cid = e.cid; this.getList(); var pages = getCurrentPages();//函數用於獲取當前頁面棧的實例,以數組形式按棧的順序給出,第一個元素為首頁,最后一個元素為當前頁面。 var prevPage = pages[pages.length - 2]; //上一個頁面 console.log(prevPage); //直接調用上一個頁面的setData()方法,把數據存到上一個頁面中去 prevPage.setData({ isDoRefresh:true }) },
A頁面
onShow() { let pages = getCurrentPages(); let currPage = pages[pages.length-1]; if (currPage.data.isDoRefresh == true){ currPage.data.isDoRefresh = false; this.init(); } }, //onLoad(從B頁面返回A頁面不會執行) // 監聽頁面加載, // 其參數為上個頁面傳遞的數據,參數類型為Object(用於頁面傳參), //onShow(從B頁面返回A頁面執行) //監聽頁面顯示。頁面每次出現在屏幕上都觸發,包括從下級頁面點返回//露出當前頁面