```this.$nextTick(() => {
let res = this.staffAppAuths.find(item => {
return (item == 'Picking' || item == 'Order')
})
if (!res) {
uni.setTabBarItem({
index: 1, //从左到右 0开始
visible: false, //默认true false隐藏
success: function(res) {
uni.showToast({
title:'成功'
})
}
})
uni.setTabBarItem({
index: 2, //从左到右 0开始
visible: false, //默认true false隐藏
success: function(res) {
uni.showToast({
title:'成功'
})
}
})
} else {
uni.showModal({
title: '有权限'
})
uni.setTabBarItem({
index: 1, //从左到右 0开始
visible: true //默认true false隐藏
})
uni.setTabBarItem({
index: 2, //从左到右 0开始
visible: true //默认true false隐藏
})
}
})```
- 发布:2023-02-03 17:30
- 更新:2023-06-27 16:49
- 阅读:1944
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 3.4.6
手机系统: Android
手机系统版本号: Android 11
手机厂商: 小米
手机机型: 平板
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
在刚登陆成功,首页onShow()中调用uni.setTabBarItem设置visible参数,执行设置成功回调,但是实际未生效
在刚登陆成功,首页onShow()中调用uni.setTabBarItem设置visible参数,执行设置成功回调,但是实际未生效
预期结果:
在刚登陆成功,首页onShow()中调用uni.setTabBarItem设置visible参数,执行设置成功回调,并且生效
在刚登陆成功,首页onShow()中调用uni.setTabBarItem设置visible参数,执行设置成功回调,并且生效
实际结果:
在刚登陆成功,首页onShow()中调用uni.setTabBarItem设置visible参数,执行设置成功回调,但是实际未生效
在刚登陆成功,首页onShow()中调用uni.setTabBarItem设置visible参数,执行设置成功回调,但是实际未生效
bug描述:
在刚登陆成功,首页onShow()中调用uni.setTabBarItem设置visible参数,执行设置成功回调,但是实际未生效
FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866
加个 setTimeout,可能tabbar还没有初始化完成
有需要可以看
官方tabbar扩展、完全自定义、点击带动画效果、可设置字体粗细、隐藏图标或文本、图标或文本大小、选中和未选中的样式等等:https://ext.dcloud.net.cn/plugin?id=10343
d***@163.com (作者)
谢谢,加个 setTimeout可以解决这个问题,但是会闪一下(先显示全部TabBarItem,才开始隐藏)。
再次优化:onShow()里面uni.hideTabBar();然后
let res = this.staffAppAuths.find(item => {
return (item == 'Picking' || item == 'Order')
})
if (!res) {
uni.setTabBarItem({
index: 1, //从左到右 0开始
visible: false, //默认true false隐藏
})
uni.setTabBarItem({
index: 2, //从左到右 0开始
visible: false, //默认true false隐藏
})
uni.showTabBar();
} else {
uni.setTabBarItem({
index: 1, //从左到右 0开始
visible: true //默认true false隐藏
})
uni.setTabBarItem({
index: 2, //从左到右 0开始
visible: true //默认true false隐藏
})
uni.showTabBar();
}
})```
这样直接跳出需要保留的TabBarItem。还是会闪,但是不存在(先显示全部TabBarItem,才开始隐藏)了
1***@qq.com - 龙
APP项目中在App.vue里面的beforeMount周期中延迟10秒在ios还是没有效果
beforeMount: function() {
let platform = uni.getSystemInfoSync().platform;
if (platform == 'ios') {
setTimeout(function() {
uni.setTabBarItem({
index: 1,
visible: false
})
}, 20000)
} else {
uni.setTabBarItem({
index: 1,
visible: true
})
}
},
d***@163.com (作者)
app不行
2023-02-03 17:32