如何从反应状态中删除对象?

How to Delete an Object from state in react?

我有这个对象要根据id删除。 经典的删除对象似乎不起作用我正在复制调用删除的状态,但它给我一个错误是我的语法还是应该以不同的方式处理删除?

// State Object Model
Items : {
id1 : [some items ],
id2 : [some items ],
id3 : [some items ],
id4 : [some items ],
id4 : [some items ],
}
// Reducer Delete Logic
 case DELETE_OBJ:    
return {
  Items: {
    ...state.Items,
    delete Items[id1]
    }
  };

先浅拷贝,再删除。您一定需要浅复制您正在更新的所有状态和嵌套状态。在这种情况下,您浅复制根状态,然后浅复制嵌套的 Items 状态对象。

// Reducer Delete Logic
case DELETE_OBJ:    
  const newState = {
    ...state,
    Items: {
      ...state.Items,
    },
  }
  delete newState.Items[id1];
  return newState;
};