在哪里保持从API到Reducer的映射逻辑

时间:2017-03-23 13:33:01

标签: javascript reactjs redux

我从后端收到以下请求:

{
  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
  }
});

减少只是将它推向状态。我的问题是 - 这是一个很好的做法,我做了什么,或者更好地做减速器内的所有映射,并使动作只是简单的对象?

1 个答案:

答案 0 :(得分:2)

我相信你所做的一切都很好。您的reducer不需要与api的响应格式绑定。在动作创建者(或中间件,如果它是一个足够普通的模式;这里不需要)中做一些事情,让减速器更容易使用动作对我来说很有意义。

在这种情况下,它还为您提供了一些api更改保护。您可能只需要修改操作创建者而不是每个使用该操作的reducer。