uni-app uni.setTabBarItem的pagePath参数不能以斜杠开头 但文档要求绝对路径
uni-app uni.setTabBarItem的pagePath参数不能以斜杠开头 但文档要求绝对路径
操作步骤:
- 直接看源码 就知道不能加斜杠了
预期结果:
- 替换路径不生效
实际结果:
- 替换路径生效
- 参考源码 :https://gitee.com/dcloud/uni-app/blob/dev/src/platforms/h5/service/api/ui/tab-bar.js 第49行
bug描述:
- uni.setTabBarItem 的 pagePath 参数目前是不能以斜杠开头的 , 而文档说要绝对路径
- 参考源码 :https://gitee.com/dcloud/uni-app/blob/dev/src/platforms/h5/service/api/ui/tab-bar.js 第49行
2 回复
就是在 pages 路径下
在 uni-app 中,uni.setTabBarItem
方法用于动态设置 tabBar 某一项的配置。其中,pagePath
参数用于指定页面的路径。根据 uni-app 的文档,pagePath
应该是一个绝对路径,但实际使用时,路径不能以斜杠 (/
) 开头。
原因
uni-app 的 pagePath
参数在设计上要求路径是相对于项目根目录的绝对路径,但在实际使用时,路径不能以斜杠开头。这是因为 uni-app 在内部处理路径时,会自动将路径转换为正确的格式。
解决方法
你只需要在 pagePath
中提供相对于项目根目录的路径,而不需要以斜杠开头。例如:
uni.setTabBarItem({
index: 0,
pagePath: 'pages/index/index', // 不需要以斜杠开头
text: '首页'
});
示例
假设你的项目结构如下:
project
├── pages
│ ├── index
│ │ └── index.vue
│ ├── user
│ │ └── user.vue
└── pages.json
如果你想设置 index
页面的 tabBar 项,可以这样写:
uni.setTabBarItem({
index: 0,
pagePath: 'pages/index/index', // 不需要以斜杠开头
text: '首页'
});