微信小程序开发中遇到的问题记录_2
一、传入参数类型
wx.setTabBarBadge(text)
只能传入string ,如果传入Number,会设置失败。解决办法是text.toString()
二、wx.setTabBarBadge(text)
不能在非tabBar页面使用,这里指的是当前onload()的页面,也就是说getCurrentPages().length == 1
这个条件成立才可以,不能在任何navigateTo()
的页面使用,如果必须使用,解决办法如下:
使用全局变量或本地缓存暂存数据
将要修改的text存入app.globalData或本地缓存,在tabBar页面onShow()中进行setTabBarBadge,为确保及时更新,需要加到所有tabBar页面。具体实现如下:
onShow(){
wx.setTabBarBadge({
index: 2, //第几个TabBar页面
text: getApp().globalData.text
})
}
这种方法需要注意,如果有异步操作获取text(如:request()请求),要注意异步的时间,不要在onshow()事件触发后才设置text。等待请求完成后跳转。
这种方法可以满足大部分需求,但是不够优雅,那么有没有更优雅的处理方法呢?
请看下一篇文章介绍