1

我目前在我的反应原生应用程序中使用 StackNavigator。

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

例如:

屏幕A -> 登录屏幕 -> 屏幕C

屏幕 B -> 登录屏幕 -> 屏幕 D

因此,在 LoginScreen 中,我需要知道我来自哪个屏幕,以便我知道是转到屏幕 C 还是 D。

但是 this.props.navigation 上的 goBack 函数只是一个带你回到最后一个屏幕的函数。它不会为您提供屏幕的 ID 或确定您来自何处的某种方式。

有人对此有解决方案吗?

谢谢

4

1 回答 1

1

Login Screen 会期望一个标志,调用它IsScreenA,这个变量将分别来自 Screen A 和 B 作为trueor false。然后,在登录屏幕中,根据该标志进行导航:

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

现在回去,在这里使用我的答案以及上述逻辑。您将调用 LoginScreen,然后根据任何屏幕,传递不同的goBack().

编辑:

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

从屏幕 A:

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

从屏幕 B:

this.props.navigation.navigate("LoginScreen", {IsScreenA: false});
于 2017-10-26T19:06:45.550 回答