在custom-tab-bar.js的methods中新增一个方法
init() {
const page = getCurrentPages().pop();
const route = page ? page.route.split('?')[0] : '';
const selected = this.data.list.findIndex(
(item) => item.pagePath === "/" + route
);
this.setData({ selected });
},
在每个有tabBar的页面的onShow方法中
onShow() {
this.getTabBar().init();
},
不写注释了,爱咋咋吧,情绪有些起伏……这破玩意儿整半天😠
二编:
我想给这bar加点儿动画,发现加得乱七八糟。想是因为switchTab就会让它的路由进行跳转,一旦跳转到一个新的路由,整个页面就会重新加载。于是每次新进入到一个页面,所有数据都会从头来一遍。
而不管是transition还是animation,它俩的呈现都是建立在变化的基础上。想要让它规律地变化,我们得能确定它的开始状态。
可是这个bar,它开始状态我抓不住😭比如现在从第2个进入到第3个,那么它的起始位置应该是2。可它不是,它新加载时它的起始位置会从0开始。
我弄了一下午,甚至保存了上一个路由。发现不管咋的它就是得从0开始。最后放弃了动画。找到可行的顺畅的再来更新!