国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

定義tabbar,以及解決原生微信小程序使用vant的tabbar的bug(點(diǎn)擊倆次圖標(biāo)才正確激活)

這篇具有很好參考價(jià)值的文章主要介紹了定義tabbar,以及解決原生微信小程序使用vant的tabbar的bug(點(diǎn)擊倆次圖標(biāo)才正確激活)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

效果展示

van-tabbar路由模式激活圖標(biāo)都高亮無法點(diǎn)擊,微信小程序開發(fā),微信小程序,bug,小程序

一、實(shí)現(xiàn)步驟

van-tabbar路由模式激活圖標(biāo)都高亮無法點(diǎn)擊,微信小程序開發(fā),微信小程序,bug,小程序

詳細(xì)步驟,可以參考小程序官方給出的文檔:
https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html

1.1. 配置信息

app.json 中的 tabBar 項(xiàng)指定 custom 字段

"tabBar": {
    "custom": true,
    "selectedColor": "#0052D9",
    "color": "#666666",
    "borderStyle": "white",
    "list": [{
        "pagePath": "pages/pickFriend/pickFriend",
        "text": "抽個(gè)對(duì)象",
        "iconPath": "/images/tabbar/tab1-inactive.png",
        "selectedIconPath": "/images/tabbar/tab1-active.png"
    }, {
        "pagePath": "pages/leftNote/leftNote",
        "text": "留的紙條",
        "iconPath": "/images/tabbar/tab2-inactive.png",
        "selectedIconPath": "/images/tabbar/tab2-active.png"
    }, {
        "pagePath": "pages/pickedNote/pickedNote",
        "text": "抽中紙條",
        "iconPath": "/images/tabbar/tab3-inactive.png",
        "selectedIconPath": "/images/tabbar/tab3-active.png"
    }]
},

1.2. 添加 tabBar 代碼文件

在代碼根目錄下添加入口文件:

custom-tab-bar/index.js
custom-tab-bar/index.json
custom-tab-bar/index.wxml
custom-tab-bar/index.wxss

1.3. 編寫 tabBar 代碼

custom-tab-bar用自定義組件的方式編寫即可,用自定義組件的方式編寫即可,該自定義組件完全接管 tabBar 的渲染。另外,自定義組件新增 getTabBar 接口,可獲取當(dāng)前頁(yè)面下的自定義 tabBar 組件實(shí)例。

1.4. 推薦使用vant的tabber組件(不用自己編寫了)

推薦使用vant的tabber組件
Tabbar 標(biāo)簽欄 - Vant Weapp (gitee.io)

1.5. 文件代碼

  • custom-tab-bar/index.json
"usingComponents": {
    "van-tabbar": "@vant/weapp/tabbar/index",
    "van-tabbar-item": "@vant/weapp/tabbar-item/index"
}
  • custom-tab-bar/index.js
// custom-tab-bar/index.js
Component({
    // 關(guān)閉組件樣式隔離--允許修改vant組件的樣式
    options: {
        styleIsolation: 'shared'
    },
    /**
     * 組件的初始數(shù)據(jù)
     */
    data: {
        active: 0,
        list: [{
            pagePath: "/pages/pickFriend/pickFriend",
            text: "抽個(gè)對(duì)象",
            iconPath: "/images/tabbar/tab1-inactive.png",
            selectedIconPath: "/images/tabbar/tab1-active.png",
        }, {
            pagePath: "/pages/leftNote/leftNote",
            text: "留的紙條",
            iconPath: "/images/tabbar/tab2-inactive.png",
            selectedIconPath: "/images/tabbar/tab2-active.png",
            info: 7
        }, {
            pagePath: "/pages/pickedNote/pickedNote",
            text: "抽中紙條",
            iconPath: "/images/tabbar/tab3-inactive.png",
            selectedIconPath: "/images/tabbar/tab3-active.png",
            info: 10
        }]
    },
    /**
     * 組件的方法列表
     */
    methods: {
        onChange(event) {
            // event.detail 的值為當(dāng)前選中項(xiàng)的索引
            // 有bug--點(diǎn)擊兩次圖標(biāo)才正確切換
            // 解決辦法:https://blog.csdn.net/weixin_62639453/article/details/129773992
            // this.setData({ active: event.detail });
            // 導(dǎo)航跳轉(zhuǎn)
            wx.switchTab({
                url: this.data.list[event.detail].pagePath,
            })
        },
    }
})
  • custom-tab-bar/index.wxml
<!--custom-tab-bar/index.wxml-->
<van-tabbar active="{{ active }}" bind:change="onChange">
    <van-tabbar-item wx:for="{{list}}" info="{{item.info>0 ? item.info : ''}}" wx:key="index">
        <image slot="icon" src="{{item.iconPath}}" mode="aspectFit" style="width: 30px; height: 18px;" />
        <image slot="icon-active" src="{{item.selectedIconPath}}" mode="aspectFit" style="width: 30px; height: 18px;" />
        {{item.text}}
    </van-tabbar-item>
</van-tabbar>

二、解決徽標(biāo)超出tabbar區(qū)域的問題

van-tabbar路由模式激活圖標(biāo)都高亮無法點(diǎn)擊,微信小程序開發(fā),微信小程序,bug,小程序

在自定義組件中使用Vant Weapp組件時(shí),需開啟styleIsolation: 'shared'

// custom-tab-bar/index.js
Component({
    options: {
        styleIsolation: 'shared'
    },
})


/* custom-tab-bar/index.wxss */
.van-tabbar-item {
    --tabbar-item-margin-bottom: 0
}

參考資料:
樣式覆蓋 - Vant Weapp (gitee.io)
定制主題 - Vant Weapp (gitee.io)

三、原生微信小程序使用vant的tabbar的bug(解決點(diǎn)擊倆次圖標(biāo)才正確激活)

3.1. 問題描述

聲明: 在導(dǎo)入使用vant (tabbar)組件的時(shí)候,發(fā)現(xiàn)通過點(diǎn)擊切換的方法來更改active的方法,結(jié)合wx.switchTab路由跳轉(zhuǎn),會(huì)出現(xiàn)圖標(biāo)沒用及時(shí)對(duì)應(yīng)上,需要第二次點(diǎn)擊才對(duì)應(yīng)上的問題。

// custom-tab-bar/index.js

methods: {
        onChange(event) {
            // event.detail 的值為當(dāng)前選中項(xiàng)的索引
            this.setData({ active: event.detail });
            // 導(dǎo)航跳轉(zhuǎn)
            wx.switchTab({
                url: this.data.list[event.detail].pagePath,
            })
        },
    }

3.2. 解決辦法

  • 去除onChange里面的激活處理
// custom-tab-bar/index.js

methods: {
        onChange(event) {
            // event.detail 的值為當(dāng)前選中項(xiàng)的索引
            // 導(dǎo)航跳轉(zhuǎn)
            wx.switchTab({
                url: this.data.list[event.detail].pagePath,
            })
        },
    }
  • 在每一個(gè)tab頁(yè)面的onshow生命周期函數(shù)里初始active的值,用來對(duì)應(yīng)每個(gè)頁(yè)面切換之后展示對(duì)應(yīng)的圖標(biāo)。

  • 第一一個(gè)tabbar頁(yè),對(duì)應(yīng)的active可以設(shè)置為0文章來源地址http://www.zghlxwxcb.cn/news/detail-850630.html

  /**
          * 生命周期函數(shù)--監(jiān)聽頁(yè)面顯示
          */
    onShow() {
        // 通過 getTabBar 接口獲取組件實(shí)例,并調(diào)用 setData 更新選中態(tài)
        this.getTabBar().setData({ active: 0 })
    },
  • 第二一個(gè)tabbar頁(yè),對(duì)應(yīng)的active可以設(shè)置為1
/**
         * 生命周期函數(shù)--監(jiān)聽頁(yè)面顯示
         */
    onShow() {
        // 通過 getTabBar 接口獲取組件實(shí)例,并調(diào)用 setData 更新選中態(tài)
        this.getTabBar().setData({ active: 1 })
    },

到了這里,關(guān)于定義tabbar,以及解決原生微信小程序使用vant的tabbar的bug(點(diǎn)擊倆次圖標(biāo)才正確激活)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微信小程序自定義tabbar切換延遲以及切換閃爍問題

    微信小程序自定義tabbar切換延遲以及切換閃爍問題

    首先,吐槽一番,官方bug,好多年了,一直不解決....那我們就自己解決.. 切換延遲就是點(diǎn)擊tabbar時(shí)要點(diǎn)擊兩次icon才能正確選中,比如說首頁(yè)要跳轉(zhuǎn)到工單頁(yè)面,要點(diǎn)擊兩次工單的圖標(biāo)才被激活; 解決:?在對(duì)應(yīng)的要跳轉(zhuǎn)的頁(yè)面的show生命周期里面加上以下代碼即可,selected是custom-tab-bar里

    2024年01月21日
    瀏覽(33)
  • 微信小程序自定義tabBar使用

    微信小程序自定義tabBar使用

    自定義使用tabbar步驟 文章目錄 一、為什么要使用自定義tabBar? 二、使用步驟 總結(jié) 微信小程序官方默認(rèn)的tabbar有很多局限性,比如無法調(diào)整圖片和文字大小、不能動(dòng)態(tài)調(diào)整個(gè)數(shù)等。 小程序開發(fā)版本:RC Build?(1.06.2206271) 在小程序開發(fā)文檔中找到指南--》基礎(chǔ)能力--》自定義tab

    2024年02月09日
    瀏覽(27)
  • 微信小程序使用uniapp自定義tabbar

    微信小程序使用uniapp自定義tabbar

    第一步:在pages.json里定義自己tabbar路徑,定義的時(shí)候只需要寫上頁(yè)面路徑即可 ?第二步:自定義tabbar頁(yè)面,為了實(shí)現(xiàn)點(diǎn)擊動(dòng)作的動(dòng)態(tài)效果,需要用到watch監(jiān)聽父組件傳來的值的改變 ?自定義tabbar頁(yè)面全部代碼 注:該頁(yè)面可以直接用組件的方式來放,因?yàn)閡niapp支持easycom模式,

    2024年02月13日
    瀏覽(24)
  • 微信小程序中使用 TDesign 自定義 TabBar

    微信小程序中使用 TDesign 自定義 TabBar

    根據(jù) 微信官方文檔 描述,每個(gè) tab 頁(yè)下的自定義 tabBar 組件實(shí)例是不同的; 如需實(shí)現(xiàn) tab 選中態(tài),要在當(dāng)前頁(yè)面下,通過 getTabBar 接口獲取組件實(shí)例,并調(diào)用 setData 更新選中態(tài) 在使用到 TabBar 的頁(yè)面中加入以下代碼

    2024年02月08日
    瀏覽(22)
  • 解決微信小程序自定義tabbar跳轉(zhuǎn)頁(yè)面圖標(biāo)閃動(dòng)問題

    解決微信小程序自定義tabbar跳轉(zhuǎn)頁(yè)面圖標(biāo)閃動(dòng)問題

    情況一? ? 如果你的tabbar對(duì)應(yīng)的頁(yè)面是component,那就在component下面加上 其中的selected是該tab頁(yè)面對(duì)應(yīng)的索引值 情況二? ? 如果你的tabbar對(duì)應(yīng)的頁(yè)面是page,那就將上面的if判斷寫在page的onshow里面 閃動(dòng)問題就解決啦~

    2024年02月12日
    瀏覽(25)
  • 解決微信小程序 自定義tabBar 首次切換時(shí)候閃爍問題(實(shí)測(cè))

    解決微信小程序 自定義tabBar 首次切換時(shí)候閃爍問題(實(shí)測(cè))

    按照官方自定義tabBar: 配置信息 在 app.json 中的 tabBar 項(xiàng)指定 custom 字段,同時(shí)其余 tabBar 相關(guān)配置也補(bǔ)充完整。 所有 tab 頁(yè)的 json 里需聲明 usingComponents 項(xiàng),也可以在 app.json 全局開啟。 我的示例: 添加 tabBar 代碼文件 在代碼根目錄下添加入口文件 custom-tab-bar :必須與pages在同

    2024年02月14日
    瀏覽(38)
  • uniapp 微信小程序使用uview u-tabbar組件自定義tabbar

    uniapp 微信小程序使用uview u-tabbar組件自定義tabbar

    1.在components文件下面新建TabBar.vue組件, 使用uview的u-tabbar組件進(jìn)行二次封裝; u-tabbar組件中value取當(dāng)前匹配項(xiàng)的name, 一般從父組件傳過來即可; 在u-tabbar-item標(biāo)簽內(nèi)可以使用插槽?slot=\\\'inactive-icon\\\'(選中的圖標(biāo))和slot=\\\'inactive-icon\\\'(未選中的圖標(biāo))自定義圖片樣式 u-tabbar組件默認(rèn)已經(jīng)為i

    2024年02月13日
    瀏覽(95)
  • 微信小程序的自定義TabBar及Vant的使用

    微信小程序的自定義TabBar及Vant的使用

    1、在?資源管理器?空白位置,點(diǎn)右鍵打開?在外部終端窗口打開 2、初始化NPM npm init -y 3、安裝命令 npm i @vant/weapp@1.3.3 -S --production 4、構(gòu)建NPM包 在?工具?里選擇構(gòu)建NPM包 5、刪除style:v2 在app.json里,刪除\\\"style\\\":\\\"v2\\\" 6、按需引入 7、使用 1、定義 2、使用 1、配置 在app.json中的 ta

    2024年02月14日
    瀏覽(22)
  • 微信小程序自定義底部菜單設(shè)計(jì),固定在底部,并非使用tabBar設(shè)計(jì)

    微信小程序自定義底部菜單設(shè)計(jì),固定在底部,并非使用tabBar設(shè)計(jì)

    1.微信小程序自定義底部菜單設(shè)計(jì),并且固定在底部,并非tabBar設(shè)計(jì) 場(chǎng)景:比如加載詳情頁(yè)時(shí):底部需要加入購(gòu)物車、收藏、返回主頁(yè)等設(shè)計(jì) 效果圖: 點(diǎn)擊事件發(fā)生 xx.wxml 樣式設(shè)計(jì)xx.wxss js設(shè)計(jì)xx.js

    2024年02月16日
    瀏覽(37)
  • 微信小程序使用自定義tabbar 想要獲取tabbar的高度,返回的結(jié)果是null,該如何獲取?

    在使用自定義tabbar時(shí),你可能會(huì)需要獲取tabbar的高度,但是按照網(wǎng)上的方法卻得不到正確的結(jié)果,這讓你十分頭疼。那么該怎么辦呢?小編為大家整理了以下幾個(gè)方法,希望能夠幫到大家。 1?? 使用wx.getSystemInfoSync()方法獲取系統(tǒng)信息,然后通過計(jì)算得出tabbar的高度。 示例

    2024年02月11日
    瀏覽(41)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包