我从后端收到以下请求:
{
total: 2,
items: [...]
}
我想将其保存到以下减速器中:
{
value: [...] // items
total: 2,
fetching: false,
error: false
}
因此,我正在使用原始请求调度一些操作:
dispatch(someAction(rawRequest));
该动作会重新映射:
export const someAction = payload => ({
type: "SOME_TYPE",
payload: {
total: payload.total,
value: payload.items,
fetching: false,
error: false
}
});
而减少只是将其推向状态。我的问题是-这是做我所做的事情的好习惯,还是在reducer内进行所有映射,然后使操作仅是简单的简单对象更好?
最佳答案
我相信您所做的一切都很好。减速器无需绑定到api的响应格式。在动作创建者(或中间件,如果这是足够普遍的模式;在这里不需要,则做某事)中做一些事情,使减速器更容易使用该动作对我来说很有意义。
在这种情况下,它还为您提供了一些免受api更改的保护。您可能只需要修改动作创建者,而不是修改每个消耗该动作的化简器。