Код: Выделить всё
function handleKeyDown(e, id) {
if (e.code === 'Backspace') {
let blocksCopy = [...blocks];
blocksCopy = blocksCopy.filter((block) => block.id != id)
blocksCopy = blocksCopy.map((block, index) => ({ ...block, id: index + 1 }));
setBlocks(blocksCopy)
}
}
пример:
- начальное значение блоков
- блокируется после удаления третьего блока
- блокируется после переиндексации (обновление значений идентификатора)
Но на странице отображается следующее:
и когда я удаляю 3-й блок, он отображает это (вместо этого удаляется 4-й блок)
!!! обратите внимание, что такое поведение происходит только тогда, когда я пытаюсь переиндексировать блоки
с помощью этой строки:
blocksCopy =blocksCopy.map((block, index) => ({ ...block, id: index + 1 }));
OR
blocksCopy.map((block, index) => ({ ...block, id: index + 1 })); (еще один вариант той же строки)
Подробнее здесь: https://stackoverflow.com/questions/798 ... immidiatly
Мобильная версия