我想使用Flux标准操作标准为我的Redux应用程序编写操作,我不确定如何构建有效负载本身 . Flux Standard Action github repo上给出的示例是:
{
type: 'ADD_TODO',
payload: {
text: 'Do something.'
}
}
如果我在我的有效载荷中传递多条信息怎么办?例如,在一个简单的待办事项应用程序中,假设我的有效负载传递了一个待办事项对象(而不仅仅是上面的待办事项文本) . 我不确定它是否应该像这样构造:
{
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对象) .
1 回答
如上所述,
payload
应该只是您的reducer所寻找的数据 . 就像是,您的reducer将根据您传递的
action
生成新状态,我们的行动负责告诉reducer
需要做什么 .当您的reducer获得一个具有
type: 'ADD_TODO'
的FS Action时,它知道它必须添加一个todo并且todo具有payload
属性 .因此,明确表示您的操作有效负载将是一个待办事项 . 没有必要告诉有效载荷中有什么 . 因为FSA本身告诉此操作包含一个
type
todo的有效负载 .