더북(TheBook)

다음으로 PostScreen 컴포넌트에서도 이벤트를 등록해주세요.

PostScreen에서는 post 정보가 내비게이션의 라우트 파라미터에 담겨있습니다. 여기서는 navigation.setParams를 사용해 라우트 파라미터를 바로 변경시키세요.

screens/PostScreen.js

import {useNavigation, useRoute} from '@react-navigation/native';
import React from 'react';
import {useEffect} from 'react';
import {ScrollView, StyleSheet} from 'react-native';
import PostCard from '../components/PostCard';
import events from '../lib/events';

function PostScreen() {
  const route = useRoute();
  const navigation = useNavigation();
  const {post} = route.params;

  useEffect(() => {
    const handler = ({description}) => {
      navigation.setParams({post: {...post, description}});
    };
    events.addListener('updatePost', handler);
    return () => {
      events.removeListener('updatePost', handler);
    };
  }, [post, navigation]);

  (...)

이제 단일 포스트 화면에서 포스트를 수정해보세요. 단일 포스트 화면에 변화가 잘 반영되나요?

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.