假设我有一个input
组件,它将从其onChange
处理程序更新状态。
function updateInputState(newvalue) {
return({
type: "UPDATE_INPUT_STATE",
payload: newValue
});
}
function InputComponent(props) {
function onChange(event) {
const newValue = event.target.value;
// OPTION #1 - WITHOUT AN ACTION CREATOR. DISPATCH THE ACTION DIRECTLY
dispatch({
type: "UPDATE_INPUT_STATE",
payload: newValue
});
// OPTION #2 - WITH AN ACTION CREATOR
dispatch(updateInputState(newValue));
}
return(
<input value={props.value} onChange={onchange}/>
);
}
我认为选项#2更具可读性,那么为什么我会使用操作创建器而不是常规的操作调度呢?
1条答案
按热度按时间elcex8rz1#
主要的好处是简单性和维护性,特别是在异步操作方面。
动作创建器也可以是异步的,并具有副作用。
因此,它简化了组件视图中的使用:
Dave Ceddia在维护方面提出了很好的观点:* “当你在多个地方复制和粘贴一个动作时,改变就更难了。"*
请注意,编写动作创建器更像是“旧API”,您现在应该使用
redux-toolkit
(2020年)。