ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Redux toolkit(create Reducer)
    Redux 2022. 7. 29. 12:50

     createReducer은 reducer부분을 짧게 줄일 수 있다.

    //createAciton
    // const reducer = (state = [], action) => {
    //     switch(action.type) {
    //         case addToDo.type:
    //             return [...state, { text: action.payload, id: Date.now()}];
    //         case deleteToDo.type:
    //             return state.filter(toDo => toDo.id !== action.payload);
    //         default:
    //             return state;
    //     }
    // };
    
    //createReducer
    const reducer = createReducer([], {
        [addToDo]: (state, action) => {
            state.push({ text: action.payload, id: Date.now()})
        },
        [deleteToDo]: (state, action) => 
            state.filter(toDo => toDo.id !== action.payload)
    })

    이런 식으로, []안에 Action을 넣어주고, state,action을 인자로 받아서 리덕스툴킷을 사용할 땐, state에 mutate를 해줘도 즉, 추가해줘도 상관없어서 편리하다.

    addToDo는 state를 mutate했고, deleteToDo는 새로운 state를 return했다.

    즉, 뭔가를 return할 땐, 새로운 state여야 한다.

    이렇게 간단하게 사용하며, switch없이도 가능하다.

    'Redux' 카테고리의 다른 글

    Redux toolkit (create Slice)  (0) 2022.07.29
    Redux Toolkit(create Action)  (0) 2022.07.29
    mapStateToProps와 mapDispatchToProps  (0) 2022.07.28
    리덕스만으로 todo 만들기  (0) 2022.07.27
    개선사항  (0) 2022.07.27

    댓글

Designed by Tistory.