2017-04-12 180 views
1

我正尝试从TabNavigator中的一个选项卡导航到StackNavigator中的屏幕并执行重置操作。这里是(略)代码:反应导航 - 从TabNavigator导航到StackNavigator

... 

const FriendsNavigator = StackNavigator({ 
Friends: { screen: Friends }, 
}) 

const TabsNavigator = TabNavigator({ 
Home: { screen: HomeNavigator }, 
Schedule: { screen: ScheduleNavigator }, 
Friends: { screen: FriendsNavigator }, 
Activity: { screen: ActivityNavigator } 
}) 

const Main = StackNavigator({ 
Login: { screen: Login }, 
Tabs: { screen: TabsNavigator } 
}) 

AppRegistry.registerComponent('Main',() => Main); 

我想在FriendsNavigatorFriends得到LoginMain并重置堆栈(就好像用户被注销)。有没有人有任何想法?

+1

从任何选项卡组件:this.props.navigation.navigate( “登录”); – gr3g

+1

不,这是行不通的。我有同样的问题。当我尝试调试时,在调试控制台中看不到任何错误。在调用导航之后,什么也没有发生! –

回答

2

我对这一切都很陌生,但我认为你需要有一个主人(我的词)导航。我制作了一个stackNavigator,然后在我不需要的时候隐藏它 - 与tabNavigator一样。

这里是我的代码工作:

const MainNavigator = StackNavigator({ 
     loginForm: { screen: LoginForm }, 
     main: { 
     screen: TabNavigator({ 
      groupMain: { screen: GroupMain }, 
      feedback: { screen: Feedback }, 
      settings: { screen: Settings }, 
      groupScreen: { 
      screen: TabNavigator({ 
      groupScreens: { screen: GroupPage}, 
      feedbackInput: { screen: FeedbackInput} 
      }) 
      } 
     }) 
     } 
    }, { 
     navigationOptions: { 
     tabBarVisible: false, 
     header: null 
     } 
    });