动作创建者功能是否只改变一个字段?

时间:2017-07-18 11:39:35

标签: reactjs redux react-redux

我正在学习redux并在完成todos教程后有点困惑。在教程中,他们展示了一个非常小的待办事项列表示例,其中包含一个用于待办事项的文本字段和另一个用于与另一个动作配对的字段

{
    text: "todo item",
    completed: false
}
例如,

和他们的行动被定义为:

ADD_TODO: 'ADD_TODO'
TOGGLE_TODO = 'TOGGLE_TODO'

这是有道理的,但你如何构建像充满应用程序设置的大对象?我应该为每个设置名称创建一个动作吗?

{
    fooSetting: "foostuffs",
    barSetting: "barstuffs",
    fooWithChild: {
        fochild: "foochild",
        fooChild2: "there are an arbitrary number of settings"
    }
    ... with an arbitrary number of additional settings. 
}

你会怎样用这种具有任意大小的结构为json制作动作和动作创作者?

1 个答案:

答案 0 :(得分:1)

对于粒度操作和缩减器应该如何,没有单一的规则。如果你愿意,你应该随意使它们更通用。

因此,举个例子:如果我有一个表单来输入姓名和地址,我就可以执行"SET_USER_FIRST_NAME""SET_USER_LAST_NAME""SET_USER_CITY"等操作但是,对每个领域采取不同的行动可能没有太大的实际好处。相反,您可能只有一个"UPDATE_USER_FORM"操作。

你甚至可以在你的reducer中做return {...state, ...action.payload}这样的事情,虽然我试图限制我这样做的频率,因为它没有提供哪些字段实际更新的信息。