모든 추가 데이터 값을 action.payload로 사용하기 때문에 나중에 리듀서 코드를 다시 볼 때 헷갈릴 수 있습니다. 객체 비구조화 할당 문법으로 action 값의 payload 이름을 새로 설정해 주면action.payload가 정확히 어떤 값을 의미하는지 더 쉽게 파악할 수 있습니다.

    modules/todos.js

    (...)
    const todos = handleActions(
      {
        [CHANGE_INPUT]: (state, { payload: input }) => ({ ...state, input }),
        [INSERT]: (state, { payload: todo }) => ({
          ...state,
          todos: state.todos.concat(todo),
        }),
        [TOGGLE]: (state, { payload: id }) => ({
          ...state,
          todos: state.todos.map(todo =>
            todo.id = = = id ? { ...todo, done: !todo.done } : todo,
          ),
        }),
        [REMOVE]: (state, { payload: id }) => ({
          ...state,
          todos: state.todos.filter(todo => todo.id != = id),
        }),
      },
      initialState,
    );
    
    export default todos;

     

    어떤가요? 코드의 가독성이 더 높아졌지요?

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