🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
问题描述
uniapp中自定义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>
如上问题有来自我自身项目开发,有的收集网站,有的来自读者,如有侵权,立马删除。
解决方案
如下是上述问题的解决方案,仅供参考:
根据如上提供的代码,自定义的tabbar组件看起来是正确的,而且TabBar
方法中使用了uni.switchTab
来进行页面跳转。如果你发现点击tabbar无法跳转页面,可能的原因有:
-
页面路径不正确:
确保pagePath
属性中的页面路径是正确的。路径应该与实际的页面文件位置相匹配,并且使用正确的文件扩展名(如.vue
)。 -
页面未在
pages.json
中声明:
在pages.json
文件中声明所有的页面路径,确保uni.switchTab
可以找到并跳转到正确的页面。 -
自定义组件未正确引用:
确保在页面中正确引用了自定义的tabbar组件。在你的代码中,<tab-Bar :current="0"></tab-Bar>
看起来是正确的,但是你需要确保tabBar
组件的名称和pages.json
中的页面路径相匹配。 -
页面跳转逻辑问题:
如果你的页面中有其他逻辑(如条件渲染或动态数据绑定)可能会影响页面跳转,检查是否有任何逻辑阻止了uni.switchTab
的执行。 -
自定义组件的
current
prop未正确传递:
确保current
prop的值能够正确地传递到自定义tabbar组件中。你可能需要在父组件中跟踪当前页面的索引,并将其传递给tabbar组件。 -
开发者工具或编译问题:
尝试清除项目缓存并重新编译,有时候开发者工具的缓存或者编译问题可能会导致无法正确预览页面跳转。 -
检查控制台错误:
在开发者工具的控制台中查看是否有任何错误信息,这可能会提供一些关于问题的线索。
如果以上步骤都无法解决问题,你可以尝试创建一个简单的自定义tabbar示例,只包含最基本的跳转逻辑,看看是否能够正常工作。如果可以,那么问题可能与你的具体实现有关,需要进一步调试。如果仍然不行,可能需要检查你的项目配置或者寻求社区的帮助。
希望能够帮到有需要的你。
PS:如若遇到采纳如下方案还是未解决的同学,希望不要抱怨&&急躁,毕竟影响因素众多,我写出来也是希望能够尽最大努力帮助到同类似问题的小伙伴,即把你未解决或者产生新Bug黏贴在评论区,我们大家一起来努力,一起帮你看看,可以不咯。
若有对当前Bug有与如下提供的方法不一致,有个不情之请,希望你能把你的新思路或新方法分享到评论区,一起学习,目的就是帮助更多所需要的同学,正所谓「赠人玫瑰,手留余香」。
☀️写在最后
ok,以上就是我这期的Bug修复内容啦,如果还想查找更多解决方案,你可以看看我专门收集Bug及提供解决方案的专栏「Bug调优」,都是实战中碰到的Bug,希望对你有所帮助。到此,咱们下期拜拜。
码字不易,如果这篇文章对你有所帮助,帮忙给bugj菌来个一键三连(关注、点赞、收藏) ,您的支持就是我坚持写作分享知识点传播技术的最大动力。
同时也推荐大家关注我的硬核公众号:「猿圈奇妙屋」 ;以第一手学习bug菌的首发干货,不仅能学习更多技术硬货,还可白嫖最新BAT大厂面试真题、4000G Pdf技术书籍、万份简历/PPT模板、技术文章Markdown文档等海量资料,你想要的我都有!
📣关于我
我是bug菌,CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等社区博客专家,C站博客之星Top30,华为云2023年度十佳博主,掘金多年度人气作者Top40,51CTO年度博主Top12,掘金/InfoQ/51CTO等社区优质创作者;全网粉丝合计 20w+;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试真题、4000G PDF电子书籍、简历模板等海量资料,你想要的我都有,关键是你不来拿。