React.js onChange работает как onInput

Я делаю валидатор для поля с числом, чтобы оно не могло быть меньше 1. (e) => setLimit(+e.target.value > 0 ? e.target.value : 1) (value у меня привязан к стейту limit)

Аттрибут onChange улавливает любое изменение, но мне нужно, чтобы работало так, как в js. Иначе при вводе числа 2 нужно выделить предыдущее число и ввести 2, нельзя просто стереть.

Как работает:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="number" oninput="$(this).val(+$(this).val() > 0 ? +$(this).val() : 1)"/>

Как должно работать:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="number" onchange="$(this).val(+$(this).val() > 0 ? +$(this).val() : 1)"/>

Написал на чистом js, смотрите не на код, а на функционал поля.

Интересует в первую очередь, как это сделать средствами React.js. Если никак - тогда какой лучший способ на js? Учитывая, что react.js будет агриться на onclick и onchange.

использовать // eslint-disable-next-line тоже не хочу


Ответы (0 шт):