January 6, 2022
redux를 사용하면서 boiler plate code (상용구 코드) 가 필요하다
yarn add @reduxjs/toolkit
const addToDo = createAction('ADD'); // 새로운 부분
const deleteToDo = createAction('DELETE'); // 새로운 부분
const reducer = (state = [], action) => {
switch (action.type) {
case addToDo.type: // 새로운 부분
// action.text -> action.payload
return [{ text: action.payload, id: Date.now() }, ...state];
case deleteToDo.type: // 새로운 부분
// action.id -> action.payload
return state.filter((toDo) => toDo.id !== action.payload);
default:
return state;
}
};
action을 따로 정의하지 않아도 되서 최적화가 되었다
const reducer = createReducer([], {
[addToDo]: (state, action) => {
state.push({ text: action.payload, id: Date.now() });
},
[deleteToDo]: (state, action) =>
state.filter((toDo) => toDo.id !== action.payload),
});