首页 > 解决方案 > 如何使用 redux 操作从数组中仅删除一个元素?

问题描述

我有一个包含对象和数字的元素数组以及运算符

前任:let a =[‘(‘,’2’,{}]

对象通过 redux 操作插入到数组中,数字和运算符通过键盘。

现在,每当我想删除一个对象时,9 都会再调用一个 redux 动作。每当我试图通过动作删除对象时,整个数组都会被删除。

如何从数组中只删除对象?

标签: reactjsreact-redux

解决方案


首先记住不要改变状态。

其次,我认为您可能希望防止在不属于您的数组中的任何其他键上分派操作,并使用后退按钮键来分派DELETE_ACTION

// your insert action
dispatch({ type: 'INCERT_ACTION', payload: ObjOrString })
// your delete actions
dispatch({ type: 'DELETE_ACTION', payload: ObjOrString })


// your reducer to handle that action
function yourReducer(state = [], action) {
  switch (action.type) {
    case 'INCERT_ACTION':
      return [...state, action.payload];
    case 'DELETE_ACTION':
      return state.filter(e => (typeof(e) !== "Object" && whate_ever_condition))
    default:
      return state
  }
}

推荐阅读