我想使用对象来决定运行 reducer 的哪一部分。我当前的示例主要来自 redux 文档。示例:
export const todos = createReducer(initialState, {
[ADD_TODO]: function (state, action) {
return [ ...state, text: action.text ]
}
})
function createReducer(initialState, handlers) {
return function reducer(state = initialState, action) {
if (handlers.hasOwnProperty(action.type)) {
return handlers[action.type](state, action)
}
return state;
}
}
这对于大多数用例来说效果很好,但我更喜欢为多个操作运行相同的函数。例如,在典型的 reducer 中,我会执行以下操作:
case: ADD_TODO:
case: ADD_TODOS:
// Do stuff and return state
return [ ...state, text: action.text ]
我希望能够做这样的事情:
createReducer(initialState, {
[ADD_TODO, ADD_TODOS]: function (state, action) {
// do stuff
对于干净的方法有什么想法吗?
最佳答案
您只需单独定义该函数,然后将其重复用于多个键:
function addTodo(state, action) {
// do stuff
}
export default createReducer(initialState, {
[ADD_TODO] : addTodo,
[ADD_TODOS] : addTodo,
});
关于javascript - redux reducer 的多个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40770043/