3-4-combineReducer
슬라이스 리듀서들로 이루어진 객체를 취하는 고차 리듀서다.
combineReducers에서 ES6의 객체 리터럴로 상태의 형태를 정의한 예제다.
// reducers.js
export default theDefaultReducer = (state = 0, action) => state;
export const firstNamedReducer = (state = 1, action) => state;
export const secondNamedReducer = (state = 2, action) => state;
// rootReducer.js
import {combineReducers, createStore} from "redux";
import theDefaultReducer, {firstNamedReducer, secondNamedReducer} from "./reducers";
// 객체의 형태를 정의하기 위해 ES6의 객체리터럴 단축문법을 사용
const rootReducer = combineReducers({
theDefaultReducer,
firstNamedReducer,
secondNamedReducer
});
const store = createStore(rootReducer);
console.log(store.getState());
// {theDefaultReducer : 0, firstNamedReducer : 1, secondNamedReducer : 2}일반적으로 이름에 "reducer"와 같은 단어 포함하는 건 좋은 습관이 아니다. Key에는 보유한 데이터의 도메인, 유형을 단순하게 반영해야 한다.
개선해보자.
Last updated
Was this helpful?