小程序可以藉由頁面設置 tabBar 來定義全局的 tabBar (如下圖),官方文件在此。
wx.switchTab()、wx.reLaunch()
當如果導向的頁面是 tabBar 其中一員,要使用 wx.switchTab()
或 wx.reLaunch()
,wx.navigateTo()
和 wx.redirectTo()
不作用。
需注意 wx.switchTab()
,路徑不支援參數攜帶。
tabBar 頁面只在第一次載入時進入生命週期
頁面生命週期為 onLoad()
, onShow()
, onReady()
,若為 tab 頁面,只會在第一次時進入 onLoad()
, onReady()
。若要每次都執行,需將執行程式放在onShow()
。
若使用 wx.switchTab()
方式導向 (而非點擊下方 tabBar),可以透過一些做法令其重整 (來源):
wx.switchTab({ url:'/pages/index/index', success(){ // 是否有上一頁 let page = getCurrentPages().pop(); if (page == undefined || page == null) { return; } page.onLoad(); } })
或是透過 wx.reLaunch()
方法進行導向,該方法將關閉所有頁面。
參考資料: