В контролируемом компоненте значение равно тому, которое вы передаете ему в качестве реквизита.
Если это значение не изменяется, то значение этого контролируемого компонента также не изменяется.
Таким образом, обычно в управляемых компонентах вы передаете в качестве onChange поддержку функции обратного вызова, которая изменяет значение. Если эта функция обратного вызова не изменяет значение, то значение входа не изменяется.
Например,
const App = () => {
const [value, setValue] = useState("");
return (
<div>
<input value={value} onChange={(e) => {}} />
</div>
);
};
Независимо от того, сколько мы пытаемся записать в этот вход, его значение всегда будет оставить пустую строку "". Поскольку метод on change не обновляет состояние значения.
Таким образом, для ясности в вашем вопросе состояние не возвращается к начальному значению, оно никогда не изменяется, и то же самое относится к элементу html - значение на входе никогда не меняется.
Пример кода: https://codepen.io/besnikkorca/pen/rNOVXzx