在微信小程序開發的過程當中 經常碰到一些帶邏輯的一些事情 就比如 新增地址 修改地址 篩選用戶條件等頁面的時候 我們也可以用wx.navigateTo來跳轉實現 但其中有很多問題
1.微信的十層跳轉 當你用navigateTo跳轉的時候跳轉十次的時候就跳不動了
2.參數的傳遞 我們在用navigateTo跳轉的時候通常帶着參數來跳 試想一下 如果我們一種這么跳 那么攜帶的參數越來越多 這不是開發的一個好事情
所以在以上的問題上我們可以用navigateback來實現 既僅攜帶本次跳轉用的參數即可 並且速度會很快 因為不需要再次加載onLoad函數 寫起來也會方便很多 話不多說 上代碼
一、假如我們此時在篩選用戶條件的頁面上 經過我們一系列實現后准備跳回上一個頁面的時候
let pages = getCurrentPages();//當前頁面 (pages就是獲取的當前頁面的JS里面所有pages的信息)
let prevPage = pages[pages.length - 2];//上一頁面(prevPage 就是獲取的上一個頁面的JS里面所有pages的信息)
prevPage.setData({
state:1,
searchContent: this.data.searchContent,
regionName: this.data.regionName,
industryId: this.data.classifySelc,
districtId: this.data.selectArea,
businessDistrictId: this.data.selectTrading,
restaurantCategoryId: this.data.selectShop
}) //以上就是我回到上個頁面所要攜帶的所有參數 如果我們用navigateTo來跳轉的話 試想一下 那個跳轉地址會寫多長
wx.navigateBack({
delta: 1,
}) //回到上一個頁面 僅適用於用navigateTo跳轉過來的頁面
二、在我們的主頁面上 即上一個頁面 這么幾個步驟
1.在頁面的data里面設置接收上個頁面傳過來的參數的變量
data:{
state:0
} //這個state就是接收的上個頁面傳過來的state:1這個參數 此時你的頁面data里面的state的參數就變成了1
2.
let pages = getCurrentPages()
;
let currPage = pages[pages.length-1]; //獲取當前頁面pages里的所有信息 可以console一下看一下此時的數據已經變成了你傳回來的數據了
3.那么我們怎么用這個數據 切記在onshow函數里面調用data里面的數據就可以了 因為我們是navigateback返回上一個頁面 就相當於返回 此時我們頁面不會再次執行onLoad函數
所以我們需要用onshow來調用我們之前封裝好的方法就可以了
: 經過簡單的一處理 就會使我們的代碼簡潔簡單很多 不會那么冗長了 頁面邏輯實現起來更容易了