如何从Redux状态添加和删除属性

时间:2019-08-15 19:20:12

标签: reactjs redux

我有一个initialState:

let initialState = {
   items: []
}

我的动作中有一个有效载荷,例如:

{name: 'A', age: 2}, {name: 'B', age: 1}

将我的有效载荷设置到我的减速器后:

case SET_ITEMS:
      return {
        ...state,
     items: [...state.items, ...action.payload],
      };

之后,我的状态是:

 let initialState = {
       items: [
          {name: 'A', age: 2}, 
          {name: 'B', age: 1}
       ],
    }

所以我要添加到项目的每个项目中,例如,像这样的另一个属性:

 let initialState = {
           items: [
              {name: 'A', age: 2, active: true}, 
              {name: 'B', age: 1, active: true}
           ],
        }

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以为此使用map

case SET_ITEMS:
  return {
    ...state,
    items: state.items.map(item => ({
        ...item,
        active: true
      }))
    };

答案 1 :(得分:0)

如果您想同时更新有效负载和状态以添加额外的属性,则也可以这样做。

case SET_ITEMS:
  return {
    ...state,
 items: [
...state.items.map(item => ({
        ...item,
        active: true
      })),
 ...action.payload.map(item => ({
        ...item,
        active: true
      }))
],
  };