Удалить элемент из массива redux по индексу

У меня есть массив, хранящийся в моем магазине React redux. элементы состоят из title и все (нет поля id как такового).

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

case REMOVE_NOTIFICATION: 
    return {
        ...state,
        notifications: state.notifications.filter(id => action.id !== id)
    }

action.id правильный, но его вызов, похоже, ни к чему не приводит. Я ожидал, что он вернет новый массив элементов, в котором action.id не соответствует идентификатору переданного элемента. Правильно ли я предполагаю, что id на самом деле является индексом элемента массива?

Правильно ли я предполагаю, что id на самом деле является индексом элемента массива? нет, id не будет индексом элемента, если вы хотите использовать индекс, напишите его так: state.notifications.filter((id, index) => action.id !== index)
Mayank Shukla 02.04.2018 21:23
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
1
1 398
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Нет В функции фильтра первым параметром всегда является значение, а вторым параметром - индекс / ключ.

попробуй это :)

case REMOVE_NOTIFICATION: 
    return {
        ...state,
        notifications: state.notifications.filter((obj,index) => {return action.id !== index})
    }

Am I correct to assume that id is in fact the array item's index?

Нет. Согласно Справочник MDN, ваш параметр я бы будет элементами массива (содержанием), а не их индексом.

Вы можете получить доступ к индексу элемента по второму параметру функции фильтра:

case REMOVE_NOTIFICATION: 
return {
    ...state,
    notifications: state.notifications.filter((item, index) => action.id !== index)
}

Другие вопросы по теме