微信小程序uni.switchTab传参获取不到;小程序跳转到tabBar页并传参;uni-app微信小程序获取tabBar页面参数失败;uni-app微信小程序tabBar页面onLoad不执行
需求場景:從非tabBar頁面B跳轉到tabBar頁面A,并想要攜帶參數。 如果使用uni.switchTab傳參,會導致tabBAE頁面獲取不到參數;
原因: 官方文檔有說,uni.switchTab路徑后不能帶參數;
uni.navigateTo是可以傳參,但是跳轉到 tabBar 頁面只能使用 switchTab 跳轉(不完全對);
實測:到導航欄tabBar頁也可以用reLaunch還可以攜帶參數,且一定會觸發onLoad和onShow(因為reLaunch既關閉了所有頁面 也可以跳轉到任意頁面);但不建議使用,因為reLaunch關閉所有頁面,會導致你再次點擊另外一個tabBar導航欄C頁時候,也會再次觸發C頁的onLoad
解決方案:
- 跳轉頁面依舊使用uni.switchTab,參數使用uni.setStorageSync存到緩存內,跳轉到tabBar后僅會觸發onShow,此時在onShow內獲取uni.getStorageSync緩存參數;
- 或者使用reLaunch傳參跳轉,會觸發導航欄頁的onLoad和onShow
注意點: 只有五種情況會觸發導航欄tabBar頁的onLoad函數,分別是:
–1.1:首次進入到導航欄tabBar頁面;
–1.2:從微信分享進入的導航欄tabBar頁面;
–1.3:識別二維碼跳轉到小程序的導航欄tabBar頁面;
–1.4:使用了uni.reLaunch后銷毀了所有其他頁面,點擊返回首頁按鈕,到的首頁,也會觸發首頁的onLoad函數;或者直接使用uni.reLaunch到tabBar頁,也會觸發其onLoad;(因為reLaunch既關閉了所有頁面 也可以跳轉到任意頁面,包括跳到tabBar頁)
–1.5:重要一點:只要這個tabBar頁被銷毀了,下次進入到這個tabBar頁就會觸發其onLoad和onShow(類似1.4觸發)
其余從任何頁面返回到tabBar頁面,都不會觸發tabBar頁面的onLoad函數,僅僅是觸發onshow ;(包括uni.switchTab跳轉到tabBar頁面,也只是觸發onShow)
另:uni.navigateTo跳轉無效問題 和 onLoad與onShow執行問題
總結
以上是生活随笔為你收集整理的微信小程序uni.switchTab传参获取不到;小程序跳转到tabBar页并传参;uni-app微信小程序获取tabBar页面参数失败;uni-app微信小程序tabBar页面onLoad不执行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 私有云之迷思:未来是什么?
- 下一篇: [IT新应用]无线投影技术