Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数据放入“文件”中有什么好处;有效载荷;输入一个Redux操作?_Javascript_Reactjs_Redux_Flowtype - Fatal编程技术网

Javascript 将数据放入“文件”中有什么好处;有效载荷;输入一个Redux操作?

Javascript 将数据放入“文件”中有什么好处;有效载荷;输入一个Redux操作?,javascript,reactjs,redux,flowtype,Javascript,Reactjs,Redux,Flowtype,我还没有找到一个很好的答案,这似乎是一个毫无意义的惯例。在许多教程和文档中,Redux操作的定义如下: { type: "ACTION_NAME", payload: { foo: 123, bar: 456, } } payload对象的意义是什么?为什么不写下这个: { type: "ACTION_NAME", foo: 123, bar: 456, } 我使用的是Flow,我喜欢将所有动作类型定义为一个联合,没有嵌套的有效载荷: type Act

我还没有找到一个很好的答案,这似乎是一个毫无意义的惯例。在许多教程和文档中,Redux操作的定义如下:

{
  type: "ACTION_NAME",
  payload: {
    foo: 123,
    bar: 456,
  }
}
payload
对象的意义是什么?为什么不写下这个:

{
  type: "ACTION_NAME",
  foo: 123,
  bar: 456,
}
我使用的是Flow,我喜欢将所有动作类型定义为一个联合,没有嵌套的有效载荷:

type Action = {
  type: 'ACTION_NAME',
  foo: number,
  bar: number,
} | {
  type: 'ANOTHER_ACTION',
  someData: string,
} | {
  type: 'ONE_MORE_ACTION',      
  moreData: boolean,
}
我不必多次输入
有效载荷
,而且我的所有操作都会自动完成并进行类型检查,因此我不确定我遗漏了什么


我是否因为没有将所有数据放在
有效负载
对象中而错过了一些好处?

此约定被称为通量标准动作,其动机由Andrew Clark作为

如果我们能对通量的形状做出某些假设,那么处理通量的作用就容易多了。例如,基本上所有Flux操作都有一个标识符字段,例如类型、actionType或actionId。许多Flux实现还包括一种指示成功或失败的操作方法,特别是作为数据获取操作的结果。为这些模式定义一个最小的通用标准可以创建有用的工具和抽象

他对FSA的完整提议值得一读


简而言之,它使编写Sagas之类的中间件变得更容易,还可以帮助减少程序处理错误状态

哇,非常感谢!这是一个完美的解释。我没有意识到额外的“错误”和“元”键,所以现在这个约定更有意义了。还值得注意的是,它使执行诸如
返回操作.payload
返回{…状态,…操作.payload}
之类的操作变得更容易,而不必确切地知道所涉及的键。如果所有值字段都保存在操作的根目录中,则可能需要多行代码才能正确提取它们。