我想使用Flux标准操作标准来编写我的Redux应用程序的操作,并且我不确定如何构建有效负载本身。 Flux Standard Action github repo上给出的示例是:
{
type: 'ADD_TODO',
payload: {
text: 'Do something.'
}
}
现在如果我在我的有效负载中传递多条信息怎么办?例如,在一个简单的待办事项应用程序中,假设我的有效负载传递了一个待办事项对象(而不仅仅是上面的todo文本)。我不确定它是否应该像这样结构:
{
type: 'ADD_TODO',
payload: {
title: 'Do something.',
priority: 'HIGH',
completed: false
}
}
或者todo对象是否应嵌套在有效负载内,如下所示:
{
type: 'ADD_TODO',
payload: {
todo: {
title: 'Do something.',
priority: 'HIGH',
completed: false
}
}
}
看起来差别在于有效载荷是用于BE还是用于包含Reducer消耗的数据。换句话说,我的Reducer是否应该期望某种类型的数据作为有效载荷(有效载荷是todo对象),或者它们是否应该指定它们从有效载荷中获取的内容(有效载荷包含todo对象) 。
答案 0 :(得分:4)
在计算和电信领域,有效载荷是其中的一部分 传输的数据是实际预期的消息。有效载荷 排除任何仅为便利有效载荷而发送的标题或元数据 递送
如上所述,payload
应该只是您的reducer所寻找的数据。像,
{
type: 'ADD_TODO',
payload: {
title: 'Do something.',
priority: 'HIGH',
completed: false
}
}
您的reducer将根据您传递的action
生成新状态,我们的行动负责告诉reducer
需要做什么。
当你的reducer获得一个type: 'ADD_TODO'
的FS动作时,它知道它必须添加一个待办事项并且todo具有payload
属性。
因此明确表示您的行为有效负载将是一个待办事项。没有必要告诉有效载荷中有什么。因为FSA本身告诉此操作包含有效载荷type
todo。