Хорошо, у вас было несколько проблем, но в целом это было хорошее усилие!
- Вы пытались обновить состояние напрямую, а не использовать функцию мутации, предоставляемую уничтожением массива. и перехватывает
- В обновлении состояния вы не объединяли объекты должным образом, приводя к тому же значению, которое нужно передать
- Вы неправильно использовали реквизиты
Для адресации Этим я сделал новый компонент ввода, который отслеживает каждую строку компонента и столбец внутри его реквизита. Затем эти значения будут использоваться вместе с мутационной функцией prop driled и извлекать значение содержимого из вашего компонента чанка.
Пожалуйста, дайте мне знать, если это не работает
Ниже приведена ссылка на рабочую версию Пожалуйста, посмотрите на консоль, чтобы увидеть обновления, и есть кнопка, которая также напечатает текущее значение inputValue для вас. Состояние теперь также обновляется при вводе.
Редактировать: я обратился к вашему комментарию и исправил пример так, чтобы он соответствовал вашему запросу. Я пошел дальше и переключился на использование ловушки useReducer вместо этого, поскольку это делает логику c немного легче для понимания и чтения, по моему мнению. Не стесняйтесь попытаться выяснить это с помощью useState, если вы хотите это сделать. На данный момент, хотя здесь снова ссылка:
https://codesandbox.io/s/prod-resonance-wokey?fontsize=14&hidenavigation=1&theme=dark