Именно так писать с точки зрения react некорректно и, вроде, не запуская код, предположу, что не должно работать правильно, потому что onCreate возьмёт старое значение из замыкания.
Либо следует вовсе убрать onChange, можно ведь не синхронизировать переменную и взять input.value в момент создания. Тогда получится классический uncontrolled. Либо же использовать useState.