我目前正在反应原生应用中使用StackNavigator。
我有两个屏幕,它们都会导航到同一个屏幕LoginScreen
。但是,根据我来自哪个屏幕,我想去不同的屏幕。
e.g:
ScreenA - >登录屏幕 - > ScreenC
ScreenB - >登录屏幕 - > ScreenD
在登录屏幕中,我需要知道我来自哪个屏幕,以便知道是否要转到屏幕C或D.
但是this.props.navigation上的goBack函数只是一个让你回到最后一个屏幕的函数。它没有给你屏幕的ID或某种方式来确定你来自哪里。
有没有人有解决方案?
由于
答案 0 :(得分:1)
登录屏幕会有一个标志,称之为IsScreenA
,此变量将分别来自屏幕A和B true
或false
。然后,在登录屏幕中,根据该标志进行导航:
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});