Неправильный индекс массива при удалении реакции / избыточности - PullRequest
1 голос
/ 16 мая 2019

Я строю корзину для покупок в приложении реакции / редукции и не могу удалить элемент из моего массива.

Вот код, который я сейчас имею.

case REMOVE_ITEM:
    const cloned_array = state.items.slice()

    cloned_array.splice(action.payload, 1)

    return { ...state, items: cloned_array }

Я пытаюсь клонировать массив элементов в моем состоянии.Затем соедините этот массив с индексом, отправляемым редуктору в моем файле action.payload.Затем верните состояние с массивом элементов, для которого установлено значение clonedArray.

В результате первый элемент в моем массиве элементов будет удален вместо элемента, который находится в индексе, отправленном редуктору.

1 Ответ

1 голос
/ 16 мая 2019

Вы можете сделать это одним способом, используя .filter(). Он достигает той же цели, что и .slice, но теперь вам не нужно сохранять нарезанный вывод в отдельном массиве.

case REMOVE_ITEM:
   return {
    ...state,
    items: state.items.filter((item, index, array) => {
       return index !== action.payload
    })
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...