StackNavigation如何知道我从哪个屏幕导航?

时间:2017-10-26 19:03:30

标签: ios react-native navigation stack-navigator

我目前正在反应原生应用中使用StackNavigator。

我有两个屏幕,它们都会导航到同一个屏幕LoginScreen。但是,根据我来自哪个屏幕,我想去不同的屏幕。

e.g:

  

ScreenA - >登录屏幕 - > ScreenC

     

ScreenB - >登录屏幕 - > ScreenD

在登录屏幕中,我需要知道我来自哪个屏幕,以便知道是否要转到屏幕C或D.

但是this.props.navigation上的goBack函数只是一个让你回到最后一个屏幕的函数。它没有给你屏幕的ID或某种方式来确定你来自哪里。

有没有人有解决方案?

由于

1 个答案:

答案 0 :(得分:1)

登录屏幕会有一个标志,称之为IsScreenA,此变量将分别来自屏幕A和B truefalse。然后,在登录屏幕中,根据该标志进行导航:

if(this.props.IsScreenA)
   this.props.navigation.navigate("ScreenC")
else
   this.props.navigation.navigate("ScreenD")

现在回过头来,使用my answer here以及上述逻辑。您可以调用LoginScreen,然后根据任何屏幕传递不同的goBack()

编辑:

要传递参数,请执行以下操作:

从屏幕A:

this.props.navigation.navigate("LoginScreen", {IsScreenA: true});

从屏幕B:

this.props.navigation.navigate("LoginScreen", {IsScreenA: false});