2017-07-14 95 views
0

我有一個「TabsPage」這是應用程序的第一頁。我在此頁面的ionViewDidEnter內使用this.tabs.select(3)選擇第4個選項卡。這將打開第4個選項卡作爲默認選項卡,但類別爲.scroll-content的div沒有頂部邊距,因此它位於標題後面。但是,如果我使用超時,如:Ionic 3選項卡ionViewDidEnter

setTimeout(() => { 
    this.tabs.select(3); 
}, 5000) 

當第4個選項卡打開時,一切似乎沒問題。你認爲這個問題可能是什麼?

回答

0

這聽起來像是您使用的生命週期事件類型聲明的問題。你在創建視圖後聲明選項卡,並且我懷疑選擇選項的觸發和視圖本身的創建之間存在溝通不暢(這就是爲什麼你使用的是setTimeout(),這實際上是很冒險的)。

您可以在一節多讀了關於生命週期事件here生命週期事件

什麼你可以嘗試是打ionViewWillEnter(){},並設置標籤不超時。

還有一個tab input property,你應該可以在你的標籤標籤中使用。

<ion-tabs selectedIndex="3"> 

的selectedIndex(號碼)
第一加載時,默認情況下選擇標籤索引。 如果沒有提供選定的索引,那麼它將使用0,第一個選項卡。

由於所選索引是在坐在視圖中的選項卡組件中定義的,因此選項卡的視圖初始化應該沒有問題。

相關問題