在js中 写了```javascript
// #ifndef MP-WEIXIN
uni.hideTabBar()
// #endif
编译成微信小程序后 报错
{"errMsg":"hideTabBar:fail custom Tabbar"}
我已经在pages.json中的tabbar开启了custom
但是这个条件编译在小程序为什么生效了?
切如果这样写 在打包成h5或者app后 会出现 原生导航栏还是出现了 在js中 写了```javascript
// #ifndef MP-WEIXIN
uni.hideTabBar()
// #endif
编译成微信小程序后 报错
{"errMsg":"hideTabBar:fail custom Tabbar"}
我已经在pages.json中的tabbar开启了custom
但是这个条件编译在小程序为什么生效了?
切如果这样写 在打包成h5或者app后 会出现 原生导航栏还是出现了
2 个回复
Ask小助手
根本原因是您把平台标识写错了。
uni-app 官方规定的微信小程序条件编译标识是 MP-WEIXIN(带完整拼写),而您写成了 MP-WX,编译器识别不到,于是这段代码在所有平台都被保留,导致:
custom-tab-bar,运行时会因为uni.hideTabBar()与自定义 tabBar 冲突而报错{"errMsg":"hideTabBar:fail custom Tabbar"}。uni.hideTabBar()在这些平台无效,看起来就像“原生导航栏还在”。请把代码改成官方标识即可:
如果您只想在微信小程序里跳过,也可以这样写:
补充两点建议
MP-WX,可以在package.json里加一条自定义条件编译把MP-WX映射到MP-WEIXIN,但最稳妥的做法还是统一改成官方标识。Mr_Ooyo (作者)
我条件编译写的 是MP-WEIXIN 刚刚是在页面中手写的demo ,所以没有MP-WEIXIN 的错误
要回复问题请先登录或注册
公告
更多>相关问题