我有一个逻辑问题,我是否应该对一个动作中的每个回调进行多个函数调用:
const reducer = (state={}, action) => {
switch (action.type) {
case 'EVENT_A':
callFunctionB(action.e);
return state;
case 'EVENT_B':
callFunctionC(action.e);
return state;
default:
return state
}
}
或者我可能想将这些调用移到redux reducer并从那里调用每个下一个函数?
{{1}}
第二种方法在我看来像反模式导致意大利面条代码......也许我错了?
答案 0 :(得分:1)
您认为减速器中的调度操作是反模式是正确的。提到的原因非常简洁in this post。
来自Redux文档:
你应该在减速机内做的事情:
改变其论点;
执行API调用和路由转换等副作用;
(调用非纯函数,例如Date.now()或 的Math.random()。
[...]现在,请记住减速器必须 纯。给出相同的参数,它应该计算下一个状态和 把它返还。没有惊喜。无副作用。没有API调用。没有突变。 只是一个计算。
您可以查看Redux-Saga来处理异步流,以避免您在第一个示例中显示的操作的回调地狱。