Wouldn't be better to render NumberInput as type "number" instead of "text"? <input { ...props } type="number" Some browsers then interpret it better and allows to increment numbers by mouse or keys.