1***@qq.com
1***@qq.com
  • 发布:2020-08-19 09:27
  • 更新:2022-07-23 16:11
  • 阅读:2953

【报Bug】uni.setTabBarItem设置pagePath无效

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows10家庭版 版本 18363

HBuilderX类型: 正式

HBuilderX版本号: 2.8.6

手机系统: Android

手机系统版本号: Android 10

手机厂商: 华为

手机机型: 小米8se

页面类型: vue

nvue编译模式: fast

打包方式: 云端

项目创建方式: HBuilderX

bug描述:

调用uni.setTabBarItem修改text与pagePath接口返回{"errMsg":"setTabBarItem:ok"}调用成功,text修改了,但点击对应修改tabbar路径跳转的还是修改前的page路径(首页是nvue,个人中心是vue。在个人中心修改首页路径,修改过的首页路径不是nvue是否跟这个有关?)

2020-08-19 09:27 负责人:jxtian 分享
已邀请:

最佳回复

jxtian

jxtian

测试各平台正常:

  • 首先,HBuilderX 版本问题,请更新到 HBuilderX 3.3.0

    pagePath String 页面绝对路径,必须在 pages 中先定义,被替换掉的 pagePath 不会变成普通页面(仍然需要使用 uni.swichTab 跳转) App(2.8.4+)、H5(2.8.4+)支持

  • pagePath 使用绝对路径,示例
    setTabBarItem() {  
                uni.setTabBarItem({  
                    index: 1,  
                    text: '动画',  
                    pagePath: '/pages/API/animation/animation',  
                    success() {  
                        uni.switchTab({  
                            url: '/pages/API/animation/animation'  
                        })  
                    }  
                })  
            },  
jxtian

jxtian

为了快速定位问题,请提供一下可复现的示例工程

  • 孙逊大神

    确实无效

    2020-09-16 13:34

  • x***@126.com

    我也遇到同样的问题了,tab bar 其他元素都可以改,就是pagePath没反应,官方例子没有这方面演示。


    pagePath 是绝对路径

    也是在tab bar 的 page 里改的

    2021-04-12 20:24

伊呀程序

伊呀程序

正巧也遇到这个问题了。百度半天,最后发现是pagePath路径的问题。注意要写绝对路径。/pages/msg/msg

uni.setTabBarItem({  
    index: 3,  
    pagePath: '/pages/msg/msg',  
});
c***@qq.com

c***@qq.com

用绝对路径确实可以,但前提是,写setTabBarItem的地方得是tabBar页面,如果不是,写了就无效。

比如,我在App.vue的onLaunch写了setTabBarItem,然后用switchTab想跳转到对应的页面,跳不过去。改用reLaunch,虽然可以,但是又有新的问题。比如我reLaunch过去的tabBar是一个列表页,点击进明细后,再回退,页面栈就丢失了。

  • 3***@qq.com

    写在tabbar页面,还是不生效

    2021-03-15 15:21

y***@163.com

y***@163.com

无效+1

1***@163.com

1***@163.com

HBX:3.2.3,以下都无效。
pagePath:'/pages/....'
pagePath:'pages/....'
pagePath:'../pages/....'

另希望可以提供tabbar数量修改。

2***@qq.com

2***@qq.com

同样问题 修改了绝对路径不行

1***@qq.com

1***@qq.com

有解决了的吗?

5***@sina.com

5***@sina.com

同样问题 修改了绝对路径不行

Everora

Everora

我也遇到了,路径改绝对路径还是相对路径都不行,还是跳原来的地址,其他都能改,有人解决了吗

Everora

Everora

我有一个想法,就是把之前要根据条件显示的tabbar页面封装成两个组件,在跳转到tabbar页面的时候再根据条件去显示哪个组件,这也就变向实现了修改爬个Path,但还是希望官方可以给一个解决办法

Simon87

Simon87

pages.json 复制个页面 order2
setTabBarItem --> pagePath: "/pages/tabBar/order2"
就算和之前页面一样也要新建

8***@qq.com

8***@qq.com


在首页设置也是无效
uni.setTabBarItem({
index: 1,
text: '动画',
pagePath: '/pages/old-index/old-index',
success() {
uni.switchTab({
url: '/pages/old-index/old-index'
)
}
}) 也没有效果

1***@qq.com

1***@qq.com

我得是3.3版本得,现在也遇到这个问题,
uni.setTabBarItem({
index: 1,
pagePath: '/pages/infield/index'
})
现在也是没有效果

我一笑而过

我一笑而过

要回复问题请先登录注册