как удалить только один элемент из массива с помощью действия приставки? - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть массив элементов с объектами и числами вместе с оператором

Пример: let a =[‘(‘,’2’,{}]

Объект вставляется в массив с помощью редукционного действия, а числа и операторы - через клавиатуру..

Теперь, когда я хочу удалить объект 9, я вызываю еще одно избыточное действие. Когда бы я ни пытался удалить объект с помощью действия, весь массив удаляется.

Как удалитьединственный объект из массива?

Ответы [ 3 ]

0 голосов
/ 06 февраля 2019

Вы можете фильтровать ваш массив без объекта

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

ваше действие должно вызвать функцию deleteObject

0 голосов
/ 06 февраля 2019

Во-первых, помните, чтобы не изменять состояние.

Во-вторых, я думаю, что вы можете захотеть предотвратить отправку действия на любые другие ключи, которые не должны быть в вашем массиве, и использовать клавишу "назад" для отправки * 1003.*.

// 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
  }
}
0 голосов
/ 06 февраля 2019

копировать и склеивать, например.https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...