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 () { useEffect(() => { console.log('mounted'); return () => { console.log('unmounted'); }; }, []); return ( <View> <Text>Home</Text> <OpenDetailButton /> </View> ); } ( )