Проблема в том, что вы удалили обработчик. Первоначально состояние вашего Kanban класса - []. Затем, скажем, вы добавляете 4 карты, тогда это станет [{id: 0}, {id: 1}, {id: 2}, {id: 3}]
Итак, если вы удалите, скажем, 2-ю карту, ваше новое состояние станет
[{id: 0}, {id: 2}, {id: 3}]
Теперь, если вы попытаетесь удалить 3-ю карту то есть id = 2, ваш обработчик удаляет элемент index 2 из состояния, то есть элемент с идентификатором 3. Таким образом, при нажатии элемента следующий элемент будет удален. Не полагайтесь на индекс массива (это сопоставление не будет работать после удаления карты), полагайтесь на идентификаторы, которые вы создали для карт. То, как вы написали обработчик удаления, неверно. Вот решение, это должно решить проблему.
deleteCardHandler(index) {
this.setState(previousState => previousState.filter(card => card.id !== index))
}
Это в основном возвращает массив со всеми элементами, кроме того, на котором вы нажали delete. Надеюсь, это поможет !!!