더북(TheBook)

9.7.2 포스트 작성 후 업데이트하기

포스트를 작성하면 FeedScreenProfile에 반영되도록 구현해볼까요? 우선 포스트를 작성하고 나서 refresh 이벤트를 발생시킵시다.

screens/UploadScreen.js

(...)
import events from '../lib/events';

function UploadScreen() {
  (...)
  const onSubmit = useCallback(async () => {
    (...)
    events.emit('refresh');
    // TODO: 포스트 목록 새로고침
  }, [res, user, description, navigation]);

(...)

그리고 FeedScreen에 다음과 같이 useEffect를 추가해주세요.

screens/FeedScreen.js

import React, {useEffect} from 'react';
(...)
import events from '../lib/events';

function FeedScreen() {
  const {posts, noMorePost, refreshing, onLoadMore, onRefresh} = usePosts();

  useEffect(() => {
    events.addListener('refresh', onRefresh);
    return () => {
      events.removeListener('refresh', onRefresh);
    };
  }, [onRefresh]);

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