一.需求
1.tabBar在實際的項目中,被UI要求字體大小爲20rpx,而微信自帶的是24rpx
2.tabBar加上了權限管理(只有會員纔可以看到專屬的tabBar入口)
3.tabBar點擊後,如果是同樣的tabBar禁止重新加載數據
4.tabBar對應的頁面要有緩存(也就是跳轉不刷新)
二.實現思路
1.把所有的tabBar頁面寫在一個頁面,使用Swiper+scroll-view實現,balabalabalala~~
2.使用switchTab的跳轉方式緩存頁面
結果:因爲一開始項目就採用了4個頁面的方式,所以只能填坑選擇了第二種
三.實現方法
1.自定義tabBar(我使用了組件的方式)
tabBar代碼
解析:使用navigator標籤進行頁面跳轉,防止左上角的左返回按鈕出現。open-type是跳轉方式,hover-class是指定點擊時的樣式,使用tabStatu和每一個數組的current相比較來實現是否點擊的是當項,如果是就隱藏navigator,顯示block禁止同一個按鈕的多次點擊。image的標籤也是通過當前點擊項的tabStute來判斷顯示的是哪一張圖片。
tabBarj的son(普通用戶)
根據身份添加會員的權限
2.實現跳轉時就遇到了switchTab根本不管用啊,怎麼跳轉不了捏~
排查:wx.switchTab({url:'地址'})的官方說明地址必須是在app.json的tabBar中註冊的。
那就去註冊吧
app.json中註冊tabBar
這樣的寫法是爲了防止加載時出現文字,圖片的信息
但是又遇到了問題,自定義的tabbar出現在app.json的tabBar上方,彆着急,在app.js中使用wx.wx.hideTabBar(),隱藏掉就好了。哈哈。大功告成。
原文:https://blog.csdn.net/weixin_33866037/article/details/87484581