微信小程序之wx.navigateback往回攜帶參數


在微信小程序開發的過程當中  經常碰到一些帶邏輯的一些事情 就比如 新增地址 修改地址  篩選用戶條件等頁面的時候  我們也可以用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來調用我們之前封裝好的方法就可以了  
 
: 經過簡單的一處理 就會使我們的代碼簡潔簡單很多 不會那么冗長了  頁面邏輯實現起來更容易了 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM