25.3 리덕스로 글쓰기 상태 관리하기

    글쓰기 관련 상태를 리덕스로 관리해 줄 차례입니다. write 리덕스 모듈을 작성해 주세요.

    modules/write.js

    import { createAction, handleActions } from 'redux-actions';
    
    const INITIALIZE = 'write/INITIALIZE'; // 모든 내용 초기화
    const CHANGE_FIELD = 'write/CHANGE_FIELD'; // 특정 key 값 바꾸기
    
    export const initialize = createAction(INITIALIZE);
    export const changeField = createAction(CHANGE_FIELD, ({ key, value }) => ({
      key,
      value,
    }));
    
    const initialState = {
      title: '',
      body: '',
      tags: [],
    };
    
    const write = handleActions(
      {
        [INITIALIZE]: state => initialState, // initialState를 넣으면 초기 상태로 바뀜
        [CHANGE_FIELD]: (state, { payload: { key, value } }) => ({
          ...state,
          [key]: value, // 특정 key 값을 업데이트
        }),
      },
      initialState,
    );
    
    export default write;

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