uview 根据不同角色动态修改 tabbar

本文介绍了如何在uniapp中根据用户角色动态渲染tabbar,通过在每个tabbar页面添加u-tabbar组件并从vuex获取数据。在实现过程中遇到的路径错误和初始页面不匹配角色tabbar的问题,解决方案分别是对wx.switchTab的url进行修正以及在起始页做角色判断并跳转相应页面。此外,还分享了相关参考资源。
摘要由CSDN通过智能技术生成

需求

应用需要根据登录的角色属性来渲染不同的 tabbar

效果如下图所示
在这里插入图片描述

思路

在每个tabBar 页面添加如下代码(用 u-tabbar 会自动隐藏原来的 tabbar

<template>
	<div>
		<u-tabbar :list="tabbar" :mid-button="false"></u-tabbar>
	</div>
</template>
<script>
	data(){
		return {
			tabbar:[]
		}
	}
	onLoad(){
		// tabbar 的值跟你的项目有关,这里只是举例子
		this.tabbar = [{
				iconPath: "/static/uview/example/component.png",
				selectedIconPath: "/static/uview/example/component_select.png",
				text: '组件',
				count: 2,
				isDot: true,
				pagePath: "/pages/index/index"
			},
			{
				iconPath: "/static/uview/example/js.png",
				selectedIconPath: "/static/uview/example/js_select.png",
				text: '工具',
				midButton: true,
				pagePath: "/pages/js/index"
			},
			{
				iconPath: "/static/uview/example/template.png",
				selectedIconPath: "/static/uview/example/template_select.png",
				text: '模板',
				pagePath: "/pages/template/index"
			},
		];
	}
</script>

然后就可以试一试了
我是把tabbar 这些数据放到了vuex里,点击按钮之后,更新tabbar,并重新赋值。

遇到的问题

  1. 登录成功后切换到tabbar 页面,报错 object在这里插入图片描述
    答:应该是路径写错的问题

    // 错误的写法
    wx.switchTab({
    	url: 'pages/staffInfo/index'
    })
    
    // 正确的写法
    wx.switchTab({
    	// url: '../../staffInfo/index',	// 这个也可以
    	url: '/pages/staffInfo/index'
    })
    
    
  2. 其实做完之后还会遇到个问题,因为小程序起始页是固定的,如果当前角色的tabbar 中没有起始页,如何处理?

    答:我的做法是,在起始页中判断并跳转。

参考

1. Tabbar 底部导航栏,实战部分比较有用,可以下demo自己试一下。

2. uniapp中使用Vuex存储全局变量和方法

3. 关于button按钮跳转的Object报错

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值