在custom-tab-bar.js的methods中新增一個(gè)方法
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 });
},
在每個(gè)有tabBar的頁(yè)面的onShow方法中
onShow() {
this.getTabBar().init();
},
不寫(xiě)注釋了,愛(ài)咋咋吧,情緒有些起伏……這破玩意兒整半天??
二編:
我想給這bar加點(diǎn)兒動(dòng)畫(huà),發(fā)現(xiàn)加得亂七八糟。想是因?yàn)閟witchTab就會(huì)讓它的路由進(jìn)行跳轉(zhuǎn),一旦跳轉(zhuǎn)到一個(gè)新的路由,整個(gè)頁(yè)面就會(huì)重新加載。于是每次新進(jìn)入到一個(gè)頁(yè)面,所有數(shù)據(jù)都會(huì)從頭來(lái)一遍。
而不管是transition還是animation,它倆的呈現(xiàn)都是建立在變化的基礎(chǔ)上。想要讓它規(guī)律地變化,我們得能確定它的開(kāi)始狀態(tài)。
可是這個(gè)bar,它開(kāi)始狀態(tài)我抓不住??比如現(xiàn)在從第2個(gè)進(jìn)入到第3個(gè),那么它的起始位置應(yīng)該是2??伤皇牵录虞d時(shí)它的起始位置會(huì)從0開(kāi)始。
我弄了一下午,甚至保存了上一個(gè)路由。發(fā)現(xiàn)不管咋的它就是得從0開(kāi)始。最后放棄了動(dòng)畫(huà)。找到可行的順暢的再來(lái)更新!