onChangeField 함수는 useCallback으로 감싸 주었는데, 이는 Editor 컴포넌트에서 사용할 useEffect에서 onChangeField를 사용할 것이기 때문입니다. onChangeFielduseCallback으로 감싸 주어야만 나중에 Editor에서 사용할 useEffect가 컴포넌트가 화면에 나타났을 때 딱 한 번만 실행되기 때문입니다.

    또한, 사용자가 WritePage에서 벗어날 때는 데이터를 초기화해야 합니다. 컴포넌트가 언마운트될 때 useEffectINITIALIZE 액션을 발생시켜서 리덕스의 write 관련 상태를 초기화해 줍니다. 만약 초기화를 하지 않는다면, 포스트 작성 후 다시 글쓰기 페이지에 들어왔을 때 이전에 작성한 내용이 남아 있게 됩니다.

    컨테이너 컴포넌트를 다 만들었으면 WritePage에서 기존 Editor를 EditorContainer로 대체시키세요.

    pages/WritePage.js

    import React from 'react';
    import TagBox from '../components/write/TagBox';
    import WriteActionButtons from '../components/write/WriteActionButtons';
    import Responsive from '../components/common/Responsive';
    import EditorContainer from '../containers/write/EditorContainer';
    
    const WritePage = () => {
      return (
        <Responsive>
          <EditorContainer />
          <TagBox />
          <WriteActionButtons />
        </Responsive>
      );
    };
    
    export default WritePage;

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