我在绑定的动作创建者中执行基本验证。
const mapDispatchToProps = {
onSomething: (props) => {
if (performValidation(props)) {
return { type: 'SOME_ACTION' };
}
}
};
如果验证失败并且我没有返回要发送的操作,则收到错误。
动作必须是普通对象。使用自定义中间件进行异步操作。
这是预期的吗?我可以通过使用thunk来解决这个问题,但这对于非异步条件调度来说似乎有些过分。
答案 0 :(得分:2)
不,这里的thunk是正确的方法。绑定任何动作创建者时,会调用它并将输出直接传递给dispatch
。将条件逻辑放入“普通”动作创建器意味着它可能会返回undefined
,从而执行dispatch(undefined)
。
因此,如果您需要有条件地分派,要么不使用绑定操作创建器并处理组件中的条件逻辑,要么调度thunk并将条件逻辑保留在thunk中。对我来说,这是一个很好的用例。