const reducer = (state = [], action) => {
switch(action.type) {
case addToDo.type:
return [...state, { text: action.payload, id: Date.now() }];
default:
return state;
}
}
const reducer = createReducer([], {
[addToDo]: (state, action) => {
state.push({ text: action.payload, id: Date.now() })
}
});
createReducer의 장점은 기본 default 값을 정해줄 수 있다는 것이다.
함수에서 첫번째 파라미터 값이 default 값으로써 빈 배열을 지정해줄 수 있다.
기존 글에서 절대 mutate를 하면 안된다고 하였지만 createReducer 같은 경우에는 가능하다.
immer 라는 라이브러리가 뒤에서 자동으로 state를 mutate 해도 return 해주는 역할을 한다.