0
스택 탐색기의 루트로 홈 화면이 있습니다. componentWillAppear
기능을 내 Home.js 반응 구성 요소에 추가하려고했지만 뒤로 버튼을 눌러 내 연락처 화면에서 해당 화면으로 돌아올 때 실행되지 않습니다.반응 네이티브 구성 요소 WiillAppear가 실행되지 않습니까?
import React, { Component } from 'react';
import {StackNavigator} from 'react-navigation';
import Contact from './Contact';
class Home extends Component {
static navigationOptions = {title:'Home'};
componentWillAppear()
{
console.log('hello');
}
render()
{
return <View></View>;
}
}
let Router =
{
Home: {screen: Home},
Contact:{screen:Contact}
}
const Navigator = StackNavigator(Router);
export default Navigator;
항상 당신이 쌓아 네비게이터의 자식 스크린에서 반환 한 때 내 홈 화면이 표시 될 때마다 실행됩니다 다른 이벤트 핸들러가 있습니까? bennygenel 주석 사항에 따라
내가 예상하는 동작입니다. 화면을 누르면 이전 화면이 마운트 해제되지 않으므로 이전 화면으로 돌아가는 동안 아무 것도 실행되지 않습니다. – bennygenel
거기에 componentOnFocus() 또는 componentOnVisible() 같은 것이 있습니까? – John
나는 거기 있다고 생각하지 않는다. 이전 화면에서 무엇인가를해야하는 경우 사용할 수있는 두 가지 옵션이 있습니다. 첫 번째 옵션은 redux 또는 유사한 패키지를 사용하고 이전 구성 요소를 업데이트하기위한 조치를 실행하는 것입니다. 두 번째 옵션은 [이 답변]과 같은 사용자 지정 뒤로 버튼을 사용하는 것입니다 (https://stackoverflow.com/a/46796224/). 2315280) 그리고 나서'this.props.navigation.goBack()' – bennygenel