После более тщательной проверки проблема возникает из-за:
<tr key={record.index}>
Это на самом деле не устанавливается, у вас нет уникального ключа для ваших детей, поэтому React не знает, какойЭти дети были изменены, поэтому, когда вы удаляете одного из них, это немного запутывает.
Вам нужно будет предоставить уникальный ключ для каждой из ваших записей.
Я обновил ваш код ииспользовал new Date().getTime()
в качестве быстрого способа получения уникального ключа.
У меня есть рабочий пример здесь https://jsfiddle.net/xk4e1z2s/2/
Вы увидите значение уникального ключа каждой записи, отображаемое по мере ихбудут добавлены, и вы заметите, что удаляется только определенная строка.
Причина, по которой после удаления строки поля ввода пусты, заключается в том, что вам нужно сохранить входные значения вашей записи.