redux docs (under basics > actions)使用它作为操作示例:
{ type: ADD_TODO, text: 'Build my first Redux app' }
但是他们以动作创建者为例:
function addTodo(text) { return { type: ADD_TODO, text } }
在第一个示例中,操作对象中的每个值都有一个关联的键(type
和text
),但是此示例与第二个示例(其中仅操作)有什么区别?指定type
的键,仅在操作中包含参数的值?,何时应使用每种方法?
此外,第二种方法是否仅意味着将变量名用作键?如果是这样,您可以在同一个动作创建者中为多个不同的变量执行操作吗?
编辑:对此表示歉意。本质上,我想知道的是两个动作对象之间的区别,而不是关于动作与动作创建者的区别。
又是这个
function addTodo(text) {
return {
type: ADD_TODO,
text
}
}
与
function addTodo(text) {
return {
type: ADD_TODO,
data: text
}
}
答案 0 :(得分:2)
第二个示例显示了在第一个示例中使用动作创建器生成动作的示例。
动作创建者具有与通常使用生成对象的功能相同的好处,即减少冗余,并且将来可以在一个地方轻松修改动作类型或有效负载。
因此,在Redux中常见的是查看模式:
dispatch(addTodo('Do laundry'));
相对于:
dispatch({
type: ADD_TODO,
text: 'Do laundry',
});
尽管它们的结果相同。
在更新问题后进行编辑:
第二个示例使用es6 shorthand来定义text
键。因此{text}
与{text: text}
相同。