더북(TheBook)

추가로, 수정하면 좋은 버그가 하나 더 있습니다. 내 프로필 화면에서 포스트 화면을 띄운 다음에 사용자 정보를 누르면 프로필 화면이 다시 뜰 텐데 뒤로 가지 않고 홈 탭에서 새 화면을 띄웁니다. 이를 내 프로필 화면으로 다시 전환되도록 수정해봅시다.

PostCard에서 현재 내비게이션 상태를 조회해 조건에 따라 MyProfile로 이동하도록 수정해주세요. 내비게이션의 상태는 useNavigationState 함수로 조회할 수 있습니다.

import {useNavigationState} from '@react-navigation/native';

const state = useNavigationState(state => state);

이 함수의 파라미터에는 셀렉터 함수를 넣는데, 셀렉터란 상태에서 어떤 값을 조회할지 정하는 함수입니다. 이 코드처럼 state => state로 하면 전체 상태를 조회하는 것입니다. 만약 state => state.routeNames로 하면 상태 객체 내부의 routeNames 값만 조회하는 것을 의미합니다. 여기서 routeNames는 현재 라우터(현재의 경우 HomeStack 또는 ProfileStack)에 등록된 화면들의 이름이 들어있는 배열입니다.

PostCard를 다음과 같이 수정해보세요.

components/PostCard.js

import {useNavigation, useNavigationState} from '@react-navigation/native';
(...)
function PostCard({user, photoURL, description, createdAt, id}) {
  const routeNames = useNavigationState((state) => state.routeNames);
  console.log(routeNames);
(...)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.