2017-10-26 6 views
0

현재 반응 네이티브 앱에서 StackNavigator를 사용하고 있습니다.StackNavigation 내가 탐색 한 화면을 알 수있는 방법은 무엇입니까?

두 화면 모두 동일한 화면으로 이동합니다. LoginScreen. 그러나 어떤 화면에서 왔는지에 따라 다른 화면으로 이동하고 싶습니다.

예 :

ScreenA -> LoginScreen -> ScreenC

ScreenB -> LoginScreen -> ScreenD 내가했습니다 어떤 화면 알아야 할 LoginScreen에서 이와 같이

에서 C 또는 D 화면으로 이동할지 여부를 알 수 있습니다.

그러나 this.props.navigation의 goBack 기능은 마지막 화면으로 돌아갑니다. 그것은 당신에게 화면의 ID 또는 당신이 어디서 왔는지를 결정하는 어떤 방법을 제공하지 않습니다.

누구에게도 해결책이 있습니까?

감사

답변

1

로그인 화면이 IsScreenA 전화, 플래그를 기대,이 변수는 각각 true 또는 false으로 화면 A와 B에서 올 것이다. 그런 다음, 로그인 화면에서, 그 플래그에 따라 이동합니다

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

딱! 나는 그것이 그것이 이런 것이 될 것이라고 생각했다. 탐색 할 때 깃발을 어떻게 추가합니까? 뭔가, this.props.navigation.navigate ('LoginScreen', true); ? – SwimmingG

+0

@SwimmingG 내 편집보기 –

+1

칼릴 선생님! 건배! – SwimmingG