我从后端收到以下请求:

{
  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更改的保护。您可能只需要修改动作创建者,而不是修改每个消耗该动作的化简器。

07-24 09:44
查看更多