迭代数组并使用Immunity Helper为Redux Reducer更改某个属性

时间:2017-03-16 19:19:41

标签: javascript reactjs ecmascript-6 redux immutability

我正在尝试学习Immunity Helper,因为我认为它可以帮助我使用Reducers但我无法弄清楚如何更改数组中所有对象的属性。

请帮忙,我被困了这么久

https://github.com/kolodny/immutability-helper https://facebook.github.io/react/docs/update.html

我的初始状态

outputList: [
  { propertyIWantToChange: 'some value1' },
  { propertyIWantToChange: 'some value2' },
  { propertyIWantToChange: 'some value3' }, etc
]

不起作用的Reducer。我觉得我的语法略有不同,但我无法弄清楚哪一部分。

case types.SOME_TYPE: {

  return update(state, {
    outputList: {
      propertyIWantToChange: {$set: action.value}
    }
  });

1 个答案:

答案 0 :(得分:1)

您必须迭代该数组。如果该列表接受map,那么类似的东西应该有用,我猜:

case types.SOME_TYPE: {
  const lst = state.outputList.map((el) => {
    return update(el, { propertyIwantToChange: {$set: action.value}}
  });

  return update(state, { outputList: {$set: lst}})
}