uni.setTabBarItem({
index: index,
pagePath: url,
fail(data) {
console.log(data)
},
complete(data) {
uni.switchTab({
url: url,
fail(data) {
console.log(data)
}
})
}
})
- 发布:2022-01-24 17:31
- 更新:2025-11-28 17:28
- 阅读:1861
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 3.3.9
手机系统: Android
手机系统版本号: Android 12
手机厂商: 华为
手机机型: 开发工具
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
uni.setTabBarItem({
index: index,
pagePath: url,
fail(data) {
console.log(data)
},
complete(data) {
uni.switchTab({
url: url,
fail(data) {
console.log(data)
}
})
}
})
uni.setTabBarItem({
index: index,
pagePath: url,
fail(data) {
console.log(data)
},
complete(data) {
uni.switchTab({
url: url,
fail(data) {
console.log(data)
}
})
}
})
预期结果:
切换到给定的url页面
切换到给定的url页面
实际结果:
调用出错 {"errMsg":"switchTab:fail can not switch to no-tabBar page"}
调用出错 {"errMsg":"switchTab:fail can not switch to no-tabBar page"}
bug描述:
在hubilderx下,右侧预览页面会出现如下问题
uni.setTabBarItem({
index: index,
pagePath: url,
fail(data) {
console.log(data)
},
complete(data) {
uni.switchTab({
url: url,
fail(data) {
console.log(data)
}
})
}
})
vue2版本没有问题
vue3版本 调用出错 {"errMsg":"switchTab:fail can not switch to no-tabBar page"}
我的vue3版本也是这样的错误,请问现在解决了吗?
-
o***@163.com (作者)
还没,目前现象是,在vue3模式下,只要用setTabBarItem这个方法设置了pagePath 参数,switchTab 标签切换就会提示失败。
2022-06-06 17:34
uni-app: 3.0.0-alpha-4010920240607001 版本可自行添加代码修复。
我的问题是只有在打包H5页面会有这个问题,不知道和我是否一样。
修复代码如下:
window?.__uniRoutes.forEach((item: { path: string; meta: { isTabBar: boolean } }) => {
const url = item.path;
// ucMenu 是tabbar实际要展示的menu
const index = ucMenu.findIndex((i) => `/${i.path}` === url);
// 如果是实际要展示的menu,就设置isTabbar为true,否则为false
item.meta.isTabBar = index > -1;
});
根本原因就是switchTab的时候会判断,__uniRoutes里面对应跳转的路由的meta.isTabBar是否为true,
如果为true才可进行跳转,否则就会报错。
其他版本需要检查是否只有在H5环境有问题,然后window下面是否有__uniRoutes。
o***@163.com (作者)
已上传
2022-01-25 11:47