为什么reducer里不用switch呢?
来源:5-5 Action 和 Reducer 的编写
MichaelMa
2018-07-28
老师您好,
reducer里面我们会重复用到 action.type的判断,重复声明cosnt newState和return newState。根据DRY原则,能不能用switch代替if来判断呢?尤其是如果在前面逻辑的判断增多的情况下,代码的冗余会越来越多。
写回答
2回答
-
Dell
2018-07-29
完全可以,后面的课程里我用的就是switch了
00 -
MichaelMa
提问者
2018-07-28
我试了一下好像能运行?如下
import {CHANGE_INPUT_VALUE, ADD_TO_LIST, DELETE_ITEM} from './actionTypes'; const defaultState = { inputValue: '', list: [] }; export default (state = defaultState, action) => { const newState = JSON.parse(JSON.stringify(state)); switch(action.type){ case CHANGE_INPUT_VALUE: newState.inputValue = action.value; return newState; case ADD_TO_LIST: newState.list.push(newState.inputValue); newState.inputValue = ''; return newState; case DELETE_ITEM: newState.list.splice(action.index,1) return newState; default: return state; } };
这样有什么问题或者说影响吗?
00
相似问题