如何使用redux动作从数组中删除一个元素?

时间:2019-02-06 14:59:23

标签: reactjs react-redux

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

例如:let a =[‘(‘,’2’,{}]

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

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

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

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您可以过滤没有对象的数组

const deleteObject = (array) =>{
 return array.filter(e => typeof(e) !== "Object")
}

您的操作必须调用deleteObject函数

答案 2 :(得分:0)

首先记住不要改变状态。

第二,我认为您可能要防止对数组中不存在的其他任何键调度操作,并使用后退键来调度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
  }
}