React Redux在API响应中重命名嵌套对象

时间:2017-01-28 20:42:34

标签: redux react-redux

我收到了来自API的响应,我正在尝试在我将其发送到reducer之前为我的操作中的对象数组重命名嵌套对象属性。这通常是响应的样子:

[
  {
    attributes: {
      name: "Item 1",
      price_cents: 1500
    }
  },
  {
    attributes: {
      name: "Item 2",
      price_cents: 1000
    }
  },
  ...
]

我想将price_cents更改为price。在将其用作减速器的有效负载之前,我怎么能改变它?

2 个答案:

答案 0 :(得分:2)

您可以使用Array#map遍历响应数组中的每个值,并使用所需的属性和名称创建一个新对象:

const actionCreator = (response) => ({
  type: 'ACTION_TYPE',
  payload: response.map((item) => ({
    attributes: {
      name: item.attributes.name,
      price: item.attributes.price_cents
    }
  })
});

答案 1 :(得分:1)

编写过滤器以更改属性值,当响应成功返回时,过滤响应并减少它。

JSON属性名称更改:Rename the property names and change the values of multiple objects

JSON属性名称更改(2):change property name