微信小程序redirect 到tab不刷新


// 更新2018/11/20:現在小程序的頁面棧長度為10

更正 2018/11/20:

經過一段時間的實踐,我發現以前方法存在很多問題,比如 getCurrentPages 方法並不在官方的 API 列表中,route 屬性是私有的,存在被廢棄/替代的可能;又比如原來的代碼摻雜了許多業務無關的邏輯,變得冗余,不易后期維護。

現在要實現原來的需求,我更推薦這樣做:

onLoad() {
    this.init()
}

init() {
    this.checkAuth()
        .then(this.fetchData)
}

checkAuth() {
  // check authorization,return a Promise
}

fetchData() {
    // fetch api and render page
}

更正完畢

需求:

小程序需要判斷用戶是否登錄,來顯示不同的內容。當登錄失效后需要重新登錄並刷新頁面,一般我們用 redirect 或者 switchTab 方法進行頁面間的跳轉,通過getCurrentPages() 拿到頁面棧(數組,最多510個),最后一個就是當前頁面的路徑。

自然而然想到這樣來刷新當前頁:

const reload= () => {
  let pages = getCurrentPages()
  if (pages.length === 0) return 

  let curPage = pages[pages.length - 1].__route__;
  wx.redirectTo({
      url: '/' + curPage
   })  

}

這段代碼在小程序內頁工作的很好,但一到tab頁就GG思密達了——並!不!會!刷!新!

下面的方法可以解決:

const reload= () => {
  let pages = getCurrentPages()
  if (pages.length === 0) return 
  
  let curPage = pages[pages.length - 1];  
  curPage.onShow();
}
 


免責聲明!

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



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