У меня есть массив, хранящийся в моем магазине React redux. элементы состоят из title и все (нет поля id как такового).
Когда я запускаю действие, я пытаюсь обновить свой магазин через редуктор с помощью
case REMOVE_NOTIFICATION:
return {
...state,
notifications: state.notifications.filter(id => action.id !== id)
}
action.id правильный, но его вызов, похоже, ни к чему не приводит. Я ожидал, что он вернет новый массив элементов, в котором action.id не соответствует идентификатору переданного элемента. Правильно ли я предполагаю, что id на самом деле является индексом элемента массива?



Нет В функции фильтра первым параметром всегда является значение, а вторым параметром - индекс / ключ.
попробуй это :)
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)
}
state.notifications.filter((id, index) => action.id !== index)