1.出现问题原因
下面贴出的代码是官方给出的自定义tabBat组件里的函数,被我注释掉的this.setData是引起闪烁的主要原因。但是注释掉以后会引起tabBar切换按钮选中状态失效。
switchTab(e) {
const data = e.currentTarget.dataset
const url = data.path;
console.log(data)
wx.switchTab({ url })
// this.setData({
// selected: data.index
// })
}
2.tabBar切换按钮选中状态失效问题解决
由于刚才注释掉代码,是设置当前按钮选中状态的。所以我们需要在每一个tarBar页面的onShow生命周期函数里添加下面这段代码:
onShow() {
if (typeof this.getTabBar === 'function' && this.getTabBar()) {
this.getTabBar().setData({
selected: 0
})
}
},