我从后端收到以下请求:
{
total: 2,
items: [...]
}
我想将它保存到以下reducer:
{
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
}
});
减少只是将它推向状态。我的问题是 - 这是一个很好的做法,我做了什么,或者更好地做减速器内的所有映射,并使动作只是简单的对象?
答案 0 :(得分:2)
我相信你所做的一切都很好。您的reducer不需要与api的响应格式绑定。在动作创建者(或中间件,如果它是一个足够普通的模式;这里不需要)中做一些事情,让减速器更容易使用动作对我来说很有意义。
在这种情况下,它还为您提供了一些api更改保护。您可能只需要修改操作创建者而不是每个使用该操作的reducer。