【发布时间】:2018-08-25 21:17:43
【问题描述】:
如何使用 ES6 重构这个 redux reducer 代码? Concat 我可以用... 代替,对吗?但是 Object.assign 呢?
import { FETCH_REQUEST, FETCH_SUCCESS, FETCH_FAILURE } from '../actions';
const initialState = {
isFetching: false,
beersArray: [],
errorMessage: '',
skip: 0,
limit: 0,
hasMore: true,
};
export default function(state = initialState, action) {
switch (action.type) {
case FETCH_REQUEST:
return Object.assign({}, state, {
isFetching: true,
skip: action.skip,
limit: action.limit,
hasMore: true,
});
case FETCH_SUCCESS:
return Object.assign({}, state, {
isFetching: false,
beersArray: state.beersArray.concat(action.beers),
hasMore: action.hasMore,
});
case FETCH_FAILURE:
return Object.assign({}, state, {
isFetching: false,
errorMessage: action.errorMessage,
hasMore: false,
});
default:
return state;
}
}
【问题讨论】:
标签: javascript reactjs ecmascript-6 redux react-redux