参照这则帖子自定义tabbar
尝试了一下自己做自定义tabbar,但是发现无法根据点击来跳转页面。
下面附上两段相关代码,第一段是自定义的tabbar,第二段是页面引用tabbar片段。
希望有人能帮忙看看到底是哪里出了问题,这里先谢谢了。
<template>
<view class="index">
<view class="tabBar">
<view class="TaBa">
<view class="Tablist" v-for="(item,index) in tabBar.list" :key="index" @click="TabBar(item,index)">
<view class="tabimg">
<image :src="current === index?item.selectedIconPath:item.iconPath"></image>
</view>
<view :class="current === index?'TextColor':'Text'">
{{item.text}}
</view>
</view>
</view>
<view class="TabBton">
<view class="Vido">
</view>
</view>
</view>
</view>
</template>
<script>
export default {
name: "tabBar",
//接收自定义tabar组件页面的标识 用来判断是否当前点击页面
props: {
current: Number
},
data() {
return {
tabBar: {
list: [{
pagePath: "/pages/outdex/outdex.vue",
iconPath: "/static/team.png",//这个放置未点击时的图片
selectedIconPath: "/static/team_select.png",//这个放置点击时的图片
text: "团队"
},
{
pagePath: "/pages/notice/notice.vue",
iconPath: "/static/notice.png",
selectedIconPath: "/static/notice_select.png",
text: "通知"
},
{
pagePath: "/pages/ume/ume.vue",
iconPath: "/static/mine.png",
selectedIconPath: "/static/mine_select.png",
text: "个人"
}
]
},
};
},
methods: {
//底部tab跳转
TabBar(item, index) {
uni.switchTab({
url: item.pagePath
})
}
}
}
</script>
<style lang="scss">
page {
height: 100%;
background-color: #F1F1F1;
}
.index {
width: 100%;
.tabBar {
position: fixed;
bottom: 0;
width: 100%;
height: 140rpx;
background: #f8f8f8;
box-shadow: 0rpx 8rpx 28rpx 0rpx rgba(166, 179, 194, 0.30);
display: flex;
flex-direction: column;
justify-content: space-between;
.TaBa {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: space-around;
.Tablist {
display: flex;
flex-direction: column;
text-align: center;
justify-content: center;
.tabimg {
display: flex;
align-items: center;
justify-content: cen
<view class="index">
<tab-Bar :current="0"></tab-Bar>
</view>