有时候会遇到无法用原生tabbar实现的需求,这时候就可以自行封装tabbar组件。封装不是重点,就不着重赘述了。但tabbar组件中一定要有激活和非激活状态,且必须保证tabbar选项在页面切换时正确激活。
封装完成后,再页面中引入组件进行使用。但运行程序测试时可以发现:由于tabbar是处于不同pages下的,数据不能共享。点击对应tabbar选项,无法正确让选项处于激活状态。这时就涉及到页面数据共享的问题了,可以想到以下几种方案:
uni.switchTab({
// 跳转时携带参数,其余页面中使用onLoad接收
url:`/pages/${name}/${name}?current=${name}`
})
如果在二中,我们使用了方案1或2,那么就会碰到tabbar切换页面时会随着页面一起刷新的问题。
解决方法:在pages.json里设置原生tabbar, 然后在页面运行的时候 ,将原生tabbar隐藏,进而解决闪烁问题。
可以参考如下方法:自定义tabbar闪烁问题