2017-12-29 29 views
0

후 호출되지 않습니다. 내 두 번째 활동에서 componentDidMount() 함수에서 두 API를 호출합니다. 처음로드 할 때 성공적으로로드됩니다. 그런 다음 뒤로 버튼을 눌러 첫 번째 활동으로 돌아갑니다. 그런 다음 다시 두 번째 활동으로 넘어갈 경우 API가 호출되지 않고 렌더링 오류가 발생합니다. 나는 이것을위한 해결책을 찾을 수 없다. 모든 제안을 부탁드립니다. 에서 반응`componentDidMount() '함수는 내가 화면 사이를 탐색 할 <code>stackNavigator</code>을 사용하고 탐색

+0

navigate("Screen", { onNavigateBack: this.handleOnNavigateBack }); handleOnNavigateBack =() => {//do something}; 

와 자식 화면에

라고 componentWillReceiveProps을 : 당신이 부모 화면에서 다음과 같이 이동 호출 할 때 매개 변수로 콜백 함수를 전달할 수 있습니다 '방법 –

+0

다시로 갈 경우는'navigate.goBack()가','componentDidMount()가'다시는 그런 일해야 할 때 'navigate' 그것에 한 번 더. (그냥 내 코드에서 확인). 특별한 방법으로 돌아가는 것을 처리 했습니까? 더 간단한 코드로 시도해 볼 것을 제안하십시오. – Val

+0

나는 특별한 방법으로'goBack()'을 다루지 않았다. 화면 상단에있는 뒤로 화살표 버튼을 누르면됩니다. –

답변

0

는 componentDidMount는 구성 요소가 무엇을 당신이하려고하는 것은 다시 StackNavigator가는 당신의 API를 호출 생각 mounted.I 경우에만 호출된다. 확인``componentDidMount` 한 번만의 lifetime.Please에서

this.props.navigation.state.params.onNavigateBack(); 
this.props.navigation.goBack(); 
+0

감사합니다 .. 어떤 방법이 있습니까. 렌더링 메서드에서 –

+0

그냥 확인하십시오 (! prop1FromApi ||! prop2FromApi) 반환 null; – brub

+0

로딩과 같이 액티비티의 상태를 설정할 수 있습니다 : false 및로드가 false 인 경우 렌더링 기능에로드 아이콘을 표시합니다. 그런 다음 API가 호출 된 후로드를 true로 설정할 수 있습니다. –