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

StackNavigation how to know from which screen I navigated from?

我目前正在我的 React 本机应用程序中使用 StackNavigator。

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

例如:

ScreenA -> LoginScreen -> ScreenC

ScreenB -> LoginScreen -> ScreenD

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

但是 this.props.navigation 上的 goBack 功能只是一个将您带回到上一个屏幕的功能。它不会为您提供屏幕 ID 或某种确定您来自何处的方法。

有人对此有解决方案吗?

谢谢

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

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});