2017-10-08 70 views
0

我使用的反應導航儀的導航棧建立我的項目,我希望用戶登錄後用戶重定向到主屏幕。重定向屏幕反應本土

我使用navigation.navigate到重定向,但會導致主屏幕在登錄屏幕上顯示後退按鈕。

if (this.state.user) { 
    this.props.navigation.navigate('SignIn'); 
} 

有沒有什麼辦法重置導航?或者我可以在不重置導航的情況下執行其他任何方法?

+0

的可能的複製[重置爲在主屏幕的導航堆棧(導航做出反應和應對母語)](https://stackoverflow.com/questions/43090884/resetting-the-navigation-stack-for-the-主屏反應的導航 - 和 - 反應-N) – bennygenel

回答

0

我會這樣做的方式是重置導航堆棧,然後將其重定向到主頁。幸運的是,有一種方法可以執行NavigationActions.reset這種替換導航狀態的新功能。

因此,對於你的情況,我會做到以下幾點:

if (this.state.user) { 
    let newStack= NavigationActions.reset({ 
    index: 0, 
    actions: [ 
    NavigationActions.navigate({ routeName: 'Home'}) 
    ] 
    }) 
    this.props.navigation.dispatch(newStack); 
} 

此代碼將創建一個新的堆棧與堆疊在主頁的第一頁(您可以用您的自定義routeName改變它),然後使用這個新堆棧作爲我們的新導航堆棧。

您可以在官方文檔中找到有關重置方法的更多信息。 https://reactnavigation.org/docs/navigators/navigation-actions#Reset