小程序根据不同用户,显示不同tabBar

小程序根据不同用户,显示不同tabBar(官方自定义 tabBar)

现有需求:小程序用户有2种身份(vip,普通用户)
微信小程序全局文件app.json里面的"tabBar"里面的list只能放置2-5个;

代码实现

1、app.json
tabbar里面的sustom要设置为true

{"pages": [xxxx],"window": {"backgroundTextStyle": "light","navigationBarBackgroundColor": "#ffffff","navigationStyle": "default","navigationBarTextStyle": "black"},"tabBar": {"custom": true,"color": "#BDBDBD","selectedColor": "#212121","backgroundColor": "#FFFFFF","list": [{"pagePath": "pages/index/index","text": "首页","iconPath": "img/tabicon/home.png","selectedIconPath": "img/tabicon/home-active.png"},{"pagePath": "pages/signin/signin","text": "签到","iconPath": "img/tabicon/sign.png","selectedIconPath": "img/tabicon/sign-active.png"},{"pagePath": "pages/card/card","text": "优惠券","iconPath": "img/tabicon/card.png","selectedIconPath": "img/tabicon/card-active.png"},{"pagePath": "pages/profitSelect/profitSelect","text": "收益","iconPath": "img/tabicon/card.png","selectedIconPath": "img/tabicon/card-active.png"},{"pagePath": "pages/my/my","text": "我的","iconPath": "img/tabicon/my.png","selectedIconPath": "img/tabicon/my-active.png"}]},"style": "v2","sitemapLocation": "sitemap.json"
}

可以看到app.json里面放了5个不同的tabbar路径

2、自定义tabbar( custom-tab-bar官方命名)
在这里插入图片描述
(1)index.js

  1. 小程序tabbar只识别list
  2. 根据用户缓存信息,判断用户的身份或登录状态(roleId == ‘’ || roleId == 2)
  3. 根据用户的身份把tabList里面的子数组赋值给系统默认识别的`list``
  4. switchTab的作用根据不同的路径切换tabbar下标
Component({data: {selected: 0,color: "#BDBDBD",roleId: '',selectedColor: "#212121",tabList: [{list1: [{"pagePath": "/pages/index/index","text": "首页","iconPath": "/img/tabicon/home.png","selectedIconPath": "/img/tabicon/home-active.png"},{"pagePath": "/pages/signin/signin","text": "签到","iconPath": "/img/tabicon/sign.png","selectedIconPath": "/img/tabicon/sign-active.png"},{"pagePath": "/pages/card/card","text": "优惠券","iconPath": "/img/tabicon/card.png","selectedIconPath": "/img/tabicon/card-active.png"},{"pagePath": "/pages/my/my","text": "我的","iconPath": "/img/tabicon/my.png","selectedIconPath": "/img/tabicon/my-active.png"}],list2: [{"pagePath": "/pages/index/index","text": "首页","iconPath": "/img/tabicon/home.png","selectedIconPath": "/img/tabicon/home-active.png"},{"pagePath": "/pages/signin/signin","text": "签到","iconPath": "/img/tabicon/sign.png","selectedIconPath": "/img/tabicon/sign-active.png"},{"pagePath": "/pages/profitSelect/profitSelect","text": "收益","iconPath": "/img/tabicon/card.png","selectedIconPath": "/img/tabicon/card-active.png"},{"pagePath": "/pages/my/my","text": "我的","iconPath": "/img/tabicon/my.png","selectedIconPath": "/img/tabicon/my-active.png"}],}],list: []},attached() {const roleId = wx.getStorageSync('is_vip')if (roleId == '' || roleId == 2) { //普通用户和未登录时默认第一种this.setData({list: this.data.tabList[0].list1})} else if (roleId == 1) { //vip用户显示第二种this.setData({list: this.data.tabList[0].list2})}},methods: {switchTab(e) {const data = e.currentTarget.datasetconst url = data.pathwx.switchTab({ url })this.setData({selected: data.index})}},})

(2)index.wxml(可参照官方文档)

<cover-view class="tab-bar"><cover-view class="tab-bar-border"></cover-view><cover-view wx:for="{{list}}" wx:key="index" class="tab-bar-item" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="switchTab"><cover-image src="{{selected === index ? item.selectedIconPath : item.iconPath}}"></cover-image><cover-view :style="color: {{selected === index ? selectedColor : color}}">{{item.text}}</cover-view></cover-view></cover-view>

ps:有时会报错,修改调试
在这里插入图片描述
(3)index.wxss(参照官方文档)

.tab-bar {position: fixed;bottom: 0;left: 0;right: 0;height: 48px;background: white;display: flex;padding-bottom: env(safe-area-inset-bottom);
}.tab-bar-border {background-color: rgba(0, 0, 0, 0.33);position: absolute;left: 0;top: 0;width: 100%;height: 1px;transform: scaleY(0.5);
}.tab-bar-item {flex: 1;text-align: center;display: flex;justify-content: center;align-items: center;flex-direction: column;
}.tab-bar-item cover-image {width: 27px;height: 27px;
}.tab-bar-item cover-view {font-size: 10px;
}

3、凡是需要显示tabbar组件的页面,对应的xx.js里的onshow:function(){}都要按照以下进行设置方可显示tabber(selected的值是这个页面在tabbar中的顺序)

onShow() {if (typeof this.getTabBar === 'function' &&this.getTabBar()) {this.getTabBar().setData({selected: 0})}},

emmm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/30598.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 大屏图表 MPAndroidChart 饼状图 饼图,圆形统计图

//图表库implementation com.github.PhilJay:MPAndroidChart:v3.1.0X轴&#xff1a;XAxis Y轴&#xff1a;YAxis 图例&#xff1a;Legend 描述&#xff1a;Description 限制线&#xff1a;LimitLine 显示的视图&#xff1a;MarkerView (就是选择中的时候显示的样子) 饼图英文…

使用iconfont中图标后,大小显示不一致

能看到这篇文章的小伙伴们&#xff0c;大概率是遇到了与博主相同的问题了&#xff0c;组件库中的icon&#xff08;图标&#xff09;不满足需求&#xff0c;使用iconfont 中的图标&#xff0c;但是引入看到效果之后&#xff0c;瞬间就是一句国粹。。。 咱们看下面&#xff1a;明…

未来不会使用chatgpt的人会被淘汰,那么国内不用梯子如何使用chatgpt?

ChatGPT 可以在提高工作效率方面提供多方面的帮助。以下是其中的一些例子&#xff1a; 时间管理&#xff1a;通过使用 ChatGPT&#xff0c;你可以设置提醒事项&#xff0c;安排会议&#xff0c;以及进行其他与时间管理相关的任务。 研究和信息收集&#xff1a;ChatGPT 可以用来…

一招教你轻松使用公网远程访问公司内网

企业远程访问需求 众多企业都会在总部搭建各类项目管理办公系统&#xff08;如OA、ERP、CRM、财务系统等等&#xff09;&#xff0c;以提高员工的办公及管理效率。 不少出差在外或者居家办公的员工需要从外部网络访问内网来登录各类系统&#xff0c;以满足办公协作管理的需…

招商银行、江苏银行争相入局AIGC,“老银行”能否讲出“新故事”?

文 | 新熔财经 作者 | 和花 由ChatGPT引发的“大语言模型热潮”还没有过去。 六月&#xff0c;A股市场ChatGPT概念指数入选后股价涨幅超过20%的就超过30支&#xff0c;涨幅超过50%也有将近20支&#xff0c;像昆仑万维、万兴科技、神州泰岳、汤姆猫等公司&#xff0c;更是借着…

AI日报:“虚拟空间传送系统”能让你在家中七分钟环游世界

&#x1f680; “虚拟空间传送系统”能让你在家中七分钟环游世界 “虚拟空间传送系统”能让你在家中七分钟环游世界&#xff0c;由谷歌地图3D Tiles API和ChatGPT带来沉浸式旅行&#xff1b; 又有人将人生六个月交给ChatGPT进行全球旅行计划&#xff0c;但这也引发人们对于LU…

测试工程师首chatGPT,编写python读取xmind测试用例chatgtp+python+xmind

背景 有用xmind写测试用例的吧&#xff0c;统计一个xmind的条&#xff0c;需要花大量的时间&#xff0c;还有要统计有多少条冒烟的&#xff0c;多少条不通过的&#xff0c;还有通过的条数。 需求 快速使用python&#xff0c;写一个简单的脚本&#xff0c;统计所有xmind节点&…

Microsoft Edge突然打不开了,显示兼容性问题STATUS_INVALID_IMAGE_HASH

错误详情STATUS_INVALID_IMAGE_HASH 解决 其中一个解决方法&#xff1a;谷歌/Edge浏览器"STATUS_INVALID_IMAGE_HASH"错误状态码解决办法 总的来说是根据给的方法修改注册表&#xff1a; 进入 \HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge(没有就新建) …

edge浏览器安装扩展插件报错:出现错误Download interrupted

文章目录 方法一方法二 方法一 {如果使用方法一&#xff0c;一定将前面的#去掉} 1、打开host文件&#xff1a;C:\Windows\System32\drivers\etc 2、在hosts文件里面最后面&#xff0c;添加&#xff08;不需要添加井号&#xff09;&#xff1a; 注意添加前两行就可以了 131.25…

win10中Edge浏览器升级后崩溃 STATUS_INVALID_IMAGE_HASH

Edge启动后什么网站都打不开&#xff0c;错误代码&#xff1a;STATUS_INVALID_IMAGE_HASH 百度了一下解决方案。 导致这个问题的原因是 Google 在79版本&#xff08;2019年12月20号左右&#xff09;的更新中又重新启用了Renderer Code Integrity Protection&#xff08;渲染器…

Edge浏览器下载扩展插件出现报错:Download interrupted解决方法

目录 一、遇到问题 二、解决办法 一、遇到问题 在使用edge浏览器下载一些插件或者主题时候&#xff0c;会出现这个Download interrupted报错 二、解决办法 1.给管理员权限&#xff0c;方便后续修改和保存 快速解决&#xff1a;你没有权限在此位置中保存文件。请与管理员…

微软Edge浏览器无法安装/报错问题解决

问题截图 解决方法 保证在C盘下面有 如下图所示目录 如果没有所示目录 需要自行创建 C:\Program Files\Microsoft\Edge\Application 接下来直接安装浏览器即可 点击下载Edge浏览器

edge浏览器安装扩展插件(主题等)报错:出现错误Download interrupted

1、将记事本以管理员身份运行 2、文件—>打开C:\Windows\System32\drivers\etc\hosts 3、在hosts文件里面最后面&#xff0c;添加&#xff08;不需要添加井号&#xff09;&#xff1a; 131.253.33.219 edge.microsoft.com 131.253.33.219 msedgeextensions.sf.tlu.dl.delive…

chrome浏览器如何避免network报错:ERR_CERT_AUTHORITY_INVALID并添加为例外或继续前往

版权声明&#xff1a;转载请注明作者&#xff08;独孤尚良dugushangliang&#xff09;出处&#xff1a;https://blog.csdn.net/dugushangliang/article/details/101421339 本文接续https://blog.csdn.net/dugushangliang/article/details/85275319 促使我顿悟的链接&#xff1…

edge浏览器安装扩展插件报错:出现错误Download interrupted【更新版】

文章目录 一 前言二 方法一三 方法一遇到问题四 方法一的终极方法五 方法二 一 前言 由于作者本文章是之前作者遇到问题时&#xff0c;记录而来。并不能保证可以解决大伙的问题最近&#xff0c;看到读者的反馈&#xff0c;进行了更新和升级&#xff01;希望能够提供帮助&#…

这些“约X”App,千万别再用了...

推荐阅读&#xff1a;996加班累到肺部切除&#xff0c;一名程序员的维权之路&#xff01; 最近&#xff0c;各地警方发出警告&#xff0c;提醒家长们注意&#xff0c;小孩手机里有没有装「密聊软件」&#xff0c;并表示还说诈骗分子会通过这些软件诱导小孩纸犯罪。 密聊是什么软…

浏览不良网站一定会有记录吗?

来源&#xff1a;zhihu.com/question/371617052 前几天刷知乎&#xff0c;看到一个很意思的问题&#xff01; 浏览量高达2000万&#xff0c;说明大家对这类话题还是比较关注的。 这里大家整理一些网友的回答&#xff0c;仅供参考。 # 匿名用户 A 回复 都注意点吧&#xff0c;兄…

数影周报:LastPass数据泄露事件最新细节

本周看点&#xff1a;LastPass&#xff1a;关键运维员工遭定向攻击&#xff1b;Waymo今年第二轮裁掉137名员工&#xff1b;国家网信办发布《个人信息出境标准合同办法》&#xff1b;京麦商家“取消订单页面”升级&#xff1b;“智研汇”获千万级天使轮投资...... 数据安全那些事…

当程序员遇上钓鱼信息,反应太真实了

事情是这样的&#xff0c; 最近小编公司小伙伴频频收到了公司内部人员发出的邮件&#xff0c; 要么是让你扫码领取社保补贴&#xff0c; 要不就是以老板的名义让你加Q有工作安排给你&#xff0c; 这么一看大家其实就明白了&#xff0c;这就是骗子钓鱼贴&#xff0c; 一旦你…

刘煜辉:关于经济和股市的几条建议

省时查报告-专业、及时、全面的行研报告库 省时查方案-专业、及时、全面的营销策划方案库 【免费下载】2023年5月份全网热门报告合集 普通人如何利用ChatGPT变现赚钱&#xff1f; 无需翻墙&#xff0c;无需注册&#xff0c;ChatGPT4直接使用 ChatGPT提词手册&#xff0c;学完工…