2017-11-11 3 views
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 주석 사항에 따라

+0

내가 예상하는 동작입니다. 화면을 누르면 이전 화면이 마운트 해제되지 않으므로 이전 화면으로 돌아가는 동안 아무 것도 실행되지 않습니다. – bennygenel

+0

거기에 componentOnFocus() 또는 componentOnVisible() 같은 것이 있습니까? – John

+1

나는 거기 있다고 생각하지 않는다. 이전 화면에서 무엇인가를해야하는 경우 사용할 수있는 두 가지 옵션이 있습니다. 첫 번째 옵션은 redux 또는 유사한 패키지를 사용하고 이전 구성 요소를 업데이트하기위한 조치를 실행하는 것입니다. 두 번째 옵션은 [이 답변]과 같은 사용자 지정 뒤로 버튼을 사용하는 것입니다 (https://stackoverflow.com/a/46796224/). 2315280) 그리고 나서'this.props.navigation.goBack()' – bennygenel

답변

0

:

내가 거기에 생각하지 않습니다. 이전 화면에서 뭔가를해야한다면 두 가지 옵션을 사용할 수 있습니다. 첫 번째 옵션은 이전의 요소를 소품을 업데이트 REDUX 또는 유사한 패키지를 사용하여 작업을 해고 또는 두 번째 옵션은()

을 뭔가 같은 this answer 다음 this.props.navigation.goBack을 수행 버튼을 사용자 정의를 다시 사용하는 것입니다
관련 문제