5.4.3 useFocusEffect

    useFocusEffect는 화면에 포커스가 잡혔을 때 특정 작업을 할 수 있게 하는 Hook입니다. 만약 HomeScreen에서 DetailScreen을 띄운다면 HomeScreen이 화면에서 사라지는 게 아니라, HomeScreen 위에 DetailScreen을 쌓아서 보여주는 것입니다. 그래서 useEffect Hook을 통해서 컴포넌트가 마운트되거나 언마운트될 때 콘솔에 텍스트를 출력한다면 DetailScreen을 띄울 때 컴포넌트가 언마운트되지 않고, 또 뒤로가기하여 HomeScreen으로 돌아왔을 때 컴포넌트가 마운트되지 않는 것을 확인할 수 있습니다.

    MainScreen.js 파일 안에 있는 HomeScreen 컴포넌트에서 다음과 같이 useEffect를 사용해보세요.

    screens/MainScreen.js

    import React, {useEffect} from 'react';
    
    (...)
    
    function HomeScreen() {
      useEffect(() => {
        console.log('mounted');
        return () => {
          console.log('unmounted');
        };
      }, []);
    
      return (
        <View>
          <Text>Home</Text>
            <OpenDetailButton />
        </View>
      );
    }
    
    (...)
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.