Да все верно, ты перезатираешь стэйт, поэтому необходимо использовать спрэд оператор, чтобы сохранять старые значения поля. Как и было указано в ответах выше. От себя могу добавить то что было бы не плохо сразу заюзать библиотеку react-hook-form. Она позволит сократить количество рендеров что хорошо скажется на производительности