2016-07-19 31 views
1

在我的代碼中,用戶點擊一個按鈕後,我想將其重定向到第一頁(登錄)頁面。反應原生:重新加載應用程序或強制重投

我試圖用navigator.push做到這一點,它的工作原理,但它仍然顯示底部的頂部標題和tabbarios。

我怎樣才能用一個按鈕重新加載應用程序,或強制渲染index.ios? (重新根頁)

我也想要做與TabBarIOS相同。每當您滾動或在選項卡中更深入時,當您轉到另一個選項卡並返回到第一個選項卡時,它不會重新渲染。顯示它的最後狀態。

在此先感謝!

回答

1

看到沒有代碼有點困難。

想在某種條件下刷新屏幕?

如果您的屏幕是一個組件,並且您更改了組件狀態(this.setState()),它將相應地在您的頁面中更改這些狀態​​值。

[更新]

感謝澄清:

所以,在你的索引呈現,你可以這樣做:

render(){ 

    if(this.state.logout){//Whatever condition you want to be met. 
     return (<Login />); 
    } 
    else{ 
     return (<TabBarIOS ... />); 
    } 

} 

應該刪除的TabBar和顯示登錄。

+0

那麼,在我的index.ios我有TabBarIOS。其中一個選項卡是Profile,它呈現Profile.js。我在profile.js中有一個註銷按鈕,當首先按下注銷時,我將登錄狀態設置爲false(usting this.setState),然後我需要將用戶重定向到login.js的登錄頁面,我試圖用navigator.push,它的工作原理,但它仍然顯示TabBarIOS 當應用程序第一次加載,其檢查,如果你沒有登錄它顯示你的登錄頁面。所以在配置文件頁面,當你點擊註銷,實際上我設置登錄狀態爲false。我只需要重新加載應用程序。 – Ataomega

+0

沒有「重新加載」。我認爲你應該有一個只有導航器的index.ios,它可以將路由設置爲login.js或main.js(其中包含TabBarIOS)。這樣,TabBar僅限於main.js及其中的每個組件,登錄不應該受到影響。 –

+0

我有索引中的tabbarios,每個選項卡呈現不同的組件。我說的其中之一就是配置文件組件。在配置文件組件中,我有註銷按鈕。當他點擊一個按鈕時,還沒有另一種方式將用戶發送到另一個組件嗎? Navigator.push可以做到這一點,但它仍然顯示tabbar,正如我所說的。林尋找navigator.push – Ataomega

相關問題