Обновленный ответ в соответствии с этим сообщением
Вы можете использовать атрибуты type="number"
и pattern="^-?[0-9]\d*\.?\d*$"
, поэтому измените ваш элемент ввода следующим образом:
return <input value={value}
onChange={onChange}
type="number"
pattern="^-?[0-9]\d*\.?\d*$"
/>;
}
Затем примените следующие CSS правила:
/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
/* Firefox */
input[type=number] {
-moz-appearance: textfield;
}
источник: w3shools
PS Или вы можете пропустить type=number
часть и дополнительную CSS и просто использовать шаблон.