Как удалить сущности из Redux?

Всем привет, осваиваю редакс, написал кейсы для добавления и удаления сущностей. Удаление не работает, логика вроде верная, берём весь ...state, используем на нём метод filter которых возвращает новый массив, состоящий из элементов удовлетворяющих условию, т. е. из элементов не равных action.name. Таким образом мы удалили нужную сущность из массива + создали новый массив, а не мутировали старый, вроде всё верно, но почему не работает?

reducer

export default function reducer(state = initialState, action) {

    switch (action.type) {
        case 'ADD_ITEM':
            return [
                ...state,
                {
                    name: action.name,
                    age: action.age
                }
            ];

        case 'DELETE_ITEM':
            return  [
                ...state,
                state.filter(name => name!== action.name),
            ];

        default:
            return state;
    }
}

render in App.js:

function ListOfUsers() {
        const listItems = users.map(function (value, index) {
            return (
                <div>
                    <li key={index}>{value.name}, {value.age}</li>
                    <button onClick={() => dispatch({ type: 'DELETE_ITEM', name:value.name })}
                            className="btn btn-danger btn-sm">
                        Удалить
                    </button>
                </div>
            )
        });
        return (
            <ul>{listItems}</ul>
        );
    } 

state looks like:

const initialState = [
     {
        name: 'Theodore Roosevelt',
        age: 56
    },
];

export default initialState;

Ответы (1 шт):

Автор решения: d2207

Кароче я не знаю как, но работа метода filter остаётся загадкой. Если бы кто-то объяснил, я был бы очеьн благодарен. Переделал с использованием конкат и слайс.

return  [
                ...state.slice(0, action.id).concat(state.slice(action.id + 1))
            ];
→ Ссылка