redux操作中的值是否需要键?

时间:2018-07-07 22:06:09

标签: redux

redux docs (under basics > actions)使用它作为操作示例:

  

{ type: ADD_TODO, text: 'Build my first Redux app' }

但是他们以动作创建者为例:

  

function addTodo(text) { return { type: ADD_TODO, text } }

在第一个示例中,操作对象中的每个值都有一个关联的键(typetext),但是此示例与第二个示例(其中仅操作)有什么区别?指定type的键,仅在操作中包含参数的值?,何时应使用每种方法?

此外,第二种方法是否仅意味着将变量名用作键?如果是这样,您可以在同一个动作创建者中为多个不同的变量执行操作吗?

编辑:对此表示歉意。本质上,我想知道的是两个动作对象之间的区别,而不是关于动作与动作创建者的区别。

又是这个

function addTodo(text) {
  return {
    type: ADD_TODO,
    text
    }
}

function addTodo(text) {
  return {
    type: ADD_TODO,
    data: text
    }
} 

1 个答案:

答案 0 :(得分:2)

第二个示例显示了在第一个示例中使用动作创建器生成动作的示例。

动作创建者具有与通常使用生成对象的功能相同的好处,即减少冗余,并且将来可以在一个地方轻松修改动作类型或有效负载。

因此,在Redux中常见的是查看模式:

dispatch(addTodo('Do laundry'));

相对于:

dispatch({
  type: ADD_TODO,
  text: 'Do laundry',
});

尽管它们的结果相同。

在更新问题后进行编辑:

第二个示例使用es6 shorthand来定义text键。因此{text}{text: text}相同。