5.4.1 useNavigation
useNavigation Hook을 사용하면 Screen으로 사용되고 있지 않은 컴포넌트에서도 navigation 객체를 사용할 수 있습니다. OpenDetailButton 컴포넌트를 다음과 같이 수정해보세요.
screens/HomeScreen.js
import React from 'react'; import {createMaterialBottomTabNavigator} from '@react-navigation/material-bottom-tabs'; import {Text, Button, View} from 'react-native'; import Icon from 'react-native-vector-icons/MaterialIcons'; import { useNavigation, } from '@react-navigation/native'; (...) function () { const navigation = useNavigation(); return ( <Button title="Detail 1 열기" onPress={() => navigation. ('Detail', {id: 1})} /> ); } function () { return ( <View> <Text>Home</Text> <OpenDetailButton /> </View> ); } ( )
이렇게 useNavigation을 사용하면 navigation을 상위 컴포넌트에서 Props로 넣어주지 않아도 사용할 수 있답니다. 시뮬레이터에서 방금 수정한 버튼을 눌러 정상 작동하는지 확인해보세요.