Я использую реагирующую таблицу для создания сортируемого списка форм. В этом примере каждая форма имеет флажок для утвержденного, текстовое поле для имени и кнопку отправки. После нажатия кнопки отправки, форма должна быть удалена из DOM. Проблема заключается в том, что при удалении первой строки флажок во второй строке принимает состояние первой строки. Текстовое поле сохраняет свое значение.
Я использую неконтролируемые компоненты формы для отображения данных, но я использую метод handleChange для обновления массива данных верхнего уровня.
Вот кодпесочница, чтобы воспроизвести проблему. https://codesandbox.io/s/unruffled-williamson-d172s
Шаги воспроизведения:
- Установите флажок в первом ряду.
- Введите некоторый текст в флажок в первом ряду.
- Нажмите «Отправить» в первом ряду.
Ожидаемые результаты: первая строка должна быть удалена.
Фактические результаты: первая строка удалена, а оставшийся флажок установленфлажок.
Кто-нибудь сможет объяснить, почему флажок установлен после удаления первой строки? Я думаю, это может быть потому, что ключ основан на индексе, то есть после удаления первой строки ключ второй строки совпадает с первой строкой. Есть ли способ настроить ключ реагирующей таблицы? Однако, если ключ является причиной, меня смущает вопрос, почему только флажок копирует предыдущее значение, а не текстовое поле.