Добрый день! 
Работаю сейчас с Redux и не получается правильно удалить нужный элемент из массива. 
Допустим, у меня есть массив, который хранится в store. Этот массив map'ом выводится в виде списка. Каждый элемент списка имеет кнопку удаления, на который я повесил обработчик и колбэком передаю его индекс 
removeStudent(index) {
        this.props.onRemoveStudent(index);
    }
render() {
return (
{this.props.studentsStore.studentsList.map((item, index) =>
                                <tr className="itemStudent" key={index}>
                                    <td><input type="text" defaultValue={item.name} /></td>
                                    <td><input type="text" defaultValue={item.surname} /></td>
                                    <td>{item.gender}</td>
                                    <td><input type="text" defaultValue={item.age} /></td>
                                    <td>{item.isMarried + ''}</td>
                                    <td><button id="remove" onClick={() => this.removeStudent(index)}>X</button></td>
                                </tr>
                            )}
)
}
А вот написать нужный редьюсер не получается 
С добавлением понятно, там просто вставить в конец массива еще один элемент. А вот удалить...
export default connect(
    state => ({
        studentsStore: state
    }),
    dispatch => ({
     
        onRemoveStudent: (index) => {
            dispatch({ type: 'REMOVE_STUDENT', payload: index })
        }
    })
В общем, вот мой редьюсер
export default function studentsList(state = initialState, action) {
    if(action.type === 'ADD_STUDENT') {
        return [
            ...state,
            action.payload
        ]
    }
    if(action.type === 'REMOVE_STUDENT') {
        let newArr = state;
        newArr.splice(action.payload, 1);
        return newArr.filter(element => element !== action.payload);
    }
    return state;
}
Сейчас удаляется только последний элемент, вне зависимости от того, на каком элементе был клик
Подскажите, пожалуйста