微信小程式 navigate頁面跳轉問題解決方案
阿新 • • 發佈:2019-01-04
最近在跟著別人做外包小程式,在跳轉的時候遇到很大的問題 ,由於微信小程式的navigateBack
是不會重新整理原來頁面的,所以當我要做到如下邏輯時,感到十分困惑,同時覺得無法控制後退按鈕指向頁面這一設定十分不科學。
先來看看問題所在,例如我要實現如下頁面邏輯
星號表示添加了資料的地址管理頁
要做到能回退(回退的意思是指點選左上方按鈕回到上一頁面),我們不能用redirectTo
去實現跳轉,因為這個函式會把當前頁面pop出頁面棧,導致我們不能回退到正確的頁面,而又不能在第三到第四階段使用navigateTo
或者redirectTo
,因為這樣的話回退不能直接回退到index,而是隻會不斷回退,再加上微信最多隻能有5個頁面,所以不能頻繁使用navigateTo
那麼問題來了,微信的navigateBack
函式不但不重新整理資料,而且也沒有success回撥函式提供,這裡不得不自行呼叫頁面重新整理,例如:
//更新舊頁面
var pages = getCurrentPages();
var prePage = pages[pages.length - 2];
prePage.getLocInfo();
wx.navigateBack ({
url: '../locMan/locManView',
})
但在實際應用中可能就是存在另外一個問題,就是該段處理中,頁面棧到底保留的是什麼頁面,一定要確保資料非同步儲存後再跳轉頁面,不然如果非同步還沒結束,頁面就已經轉移了的話 ,該解決方案會失敗。