2016-12-04 20 views
1

我想使用的流量标准动作标准编写的行动对我的终极版的应用程序,而我不能确定如何有效载荷本身的结构应当。在Flux Standard Action github repo给出的例子是:构造有效载荷的Flux标准动作约定是什么?

{ 
    type: 'ADD_TODO', 
    payload: { 
    text: 'Do something.' 
    } 
} 

现在,如果我传递什么多条信息在我的负荷?例如,在一个简单的待办事项应用程序中,假设我的有效内容传递了待办事项对象(而不仅仅是上面的待办事项文本)。我不能确定它是否应该被结构是这样的:

{ 
    type: 'ADD_TODO', 
    payload: { 
    title: 'Do something.', 
    priority: 'HIGH', 
    completed: false 
    } 
} 

还是待办事项对象应该被嵌套在有效载荷内,像这样:

{ 
    type: 'ADD_TODO', 
    payload: { 
    todo: { 
     title: 'Do something.', 
     priority: 'HIGH', 
     completed: false 
    } 
    } 
} 

它看起来像区别在于是否有效载荷旨在成为或包含减速器消耗的数据。换句话说,我的减速器是否应该期待某种类型的数据作为有效载荷(有效载荷是一个待办事项对象),或者他们是否应该规定他们在说什么了有效载荷(有效载荷包含一个待办事项对象)。

回答

3

在计算和电信中,有效载荷是 传输数据的一部分,它是实际的预期消息。净荷 排除发送仅仅是为了便于有效载荷 递送的任何标题或元数据。

根据以上报价,​​应该只是你的减速器所寻找的数据。像,

{ 
    type: 'ADD_TODO', 
    payload: { 
    title: 'Do something.', 
    priority: 'HIGH', 
    completed: false 
    } 
} 

你的减速将基于该​​action您通过新的国家和我们的行动是负责任的告诉reducer需要做什么。

当你的减速器得到一个FS行动,它具有type: 'ADD_TODO',它知道它必须添加待办事项和待办事项是与​​财产。

因此,它是明确的,你的行动,有效载荷将是一个待办事项。没有必要告诉有效载荷中有什么。因为FSA本身会告诉我们这个动作包含了一个有效载荷,它是type todo。

+0

谢谢,使有很大的意义。 一个问题 - 在[这个答案](http://stackoverflow.com/a/29632652/5914982),米歇尔喜欢“总是有效载荷的对象(从未原始值),使得数据可以很容易地在不改变被添加接收站点“,并始终执行有效负载:{id:id},而不仅仅是有效负载:id。您是否同意或不同意这种情况,如'REMOVE_TODO',只需要该ID? – ailurus

+0

我同意米歇尔的回答。通过'REMOVE_TODO'动作,你的reducer知道动作的'todo'类型的有效载荷具有被忽略的属性。因为'REMOVE_TODO'行动只需要'id'属性。 – Thaadikkaaran

+0

我明白了,Flux标准行动的整个构想现在对我来说更有意义。谢谢您的回答! – ailurus

相关问题