InputNumber数字输入框
使用import{ InputNumber }from"antd"; |
使用import{ InputNumber }from"antd"; |
当需要获取标准数值时。
通用属性参考:通用属性
参数 | 说明 | 类型 | 默认值 | 版本 |
---|---|---|---|---|
addonAfter | 带标签的 input,设置后置标签 | ReactNode | - | 4.17.0 |
addonBefore | 带标签的 input,设置前置标签 | ReactNode | - | 4.17.0 |
autoFocus | 自动获取焦点 | boolean | false | - |
changeOnBlur | 是否在失去焦点时,触发 onChange 事件(例如值超出范围时,重新限制回范围并触发事件) | boolean | true | 5.11.0 |
changeOnWheel | 允许鼠标滚轮改变数值 | boolean | - | 5.14.0 |
controls | 是否显示增减按钮,也可设置自定义箭头图标 | boolean | { upIcon?: React.ReactNode; downIcon?: React.ReactNode; } | - | 4.19.0 |
decimalSeparator | 小数点 | string | - | - |
placeholder | 占位符 | string | - | |
defaultValue | 初始值 | number | - | - |
disabled | 禁用 | boolean | false | - |
formatter | 指定输入框展示值的格式 | function(value: number | string, info: { userTyping: boolean, input: string }): string | - | info: 4.17.0 |
keyboard | 是否启用键盘快捷行为 | boolean | true | 4.12.0 |
max | 最大值 | number | Number.MAX_SAFE_INTEGER | - |
min | 最小值 | number | Number.MIN_SAFE_INTEGER | - |
parser | 指定从 formatter 里转换回数字的方式,和 formatter 搭配使用 | function(string): number | - | - |
precision | 数值精度,配置 formatter 时会以 formatter 为准 | number | - | - |
readOnly | 只读 | boolean | false | - |
status | 设置校验状态 | 'error' | 'warning' | - | 4.19.0 |
prefix | 带有前缀图标的 input | ReactNode | - | 4.17.0 |
suffix | 带有后缀图标的 input | ReactNode | - | 5.20.0 |
size | 输入框大小 | large | middle | small | - | - |
step | 每次改变步数,可以为小数 | number | string | 1 | - |
stringMode | 字符值模式,开启后支持高精度小数。同时 onChange 将返回 string 类型 | boolean | false | 4.13.0 |
value | 当前值 | number | - | - |
variant | 形态变体 | outlined | borderless | filled | outlined | 5.13.0 |
onChange | 变化回调 | function(value: number | string | null) | - | - |
onPressEnter | 按下回车的回调 | function(e) | - | - |
onStep | 点击上下箭头的回调 | (value: number, info: { offset: number, type: 'up' | 'down' }) => void | - | 4.7.0 |
名称 | 说明 | 参数 | 版本 |
---|---|---|---|
blur() | 移除焦点 | - | |
focus() | 获取焦点 | (option?: { preventScroll?: boolean, cursor?: 'start' | 'end' | 'all' }) | cursor - 5.22.0 |
nativeElement | 获取原生 DOM 元素 | - | 5.17.3 |
Token 名称 | 描述 | 类型 | 默认值 |
---|---|---|---|
activeBg | 输入框激活状态时背景颜色 | string | #ffffff |
activeBorderColor | 激活态边框色 | string | #1677ff |
activeShadow | 激活态阴影 | string | 0 0 0 2px rgba(5, 145, 255, 0.1) |
addonBg | 前/后置标签背景色 | string | rgba(0, 0, 0, 0.02) |
controlWidth | 输入框宽度 | number | 90 |
errorActiveShadow | 错误状态时激活态阴影 | string | 0 0 0 2px rgba(255, 38, 5, 0.06) |
filledHandleBg | 面性变体操作按钮背景色 | string | #f0f0f0 |
handleActiveBg | 操作按钮激活背景色 | string | rgba(0, 0, 0, 0.02) |
handleBg | 操作按钮背景色 | string | #ffffff |
handleBorderColor | 操作按钮边框颜色 | string | #d9d9d9 |
handleFontSize | 操作按钮图标大小 | number | 7 |
handleHoverColor | 操作按钮悬浮颜色 | string | #1677ff |
handleVisible | 操作按钮可见性 | true | "auto" | auto |
handleWidth | 操作按钮宽度 | number | 22 |
hoverBg | 输入框hover状态时背景颜色 | string | #ffffff |
hoverBorderColor | 悬浮态边框色 | string | #4096ff |
inputFontSize | 字体大小 | number | 14 |
inputFontSizeLG | 大号字体大小 | number | 16 |
inputFontSizeSM | 小号字体大小 | number | 14 |
paddingBlock | 输入框纵向内边距 | number | 4 |
paddingBlockLG | 大号输入框纵向内边距 | number | 7 |
paddingBlockSM | 小号输入框纵向内边距 | number | 0 |
paddingInline | 输入框横向内边距 | number | 11 |
paddingInlineLG | 大号输入框横向内边距 | number | 11 |
paddingInlineSM | 小号输入框横向内边距 | number | 7 |
warningActiveShadow | 警告状态时激活态阴影 | string | 0 0 0 2px rgba(255, 215, 5, 0.1) |
value
可以超出 min
和 max
范围?在受控模式下,开发者可能自行存储相关数据。如果组件将数据约束回范围内,会导致展示数据与实际存储数据不一致的情况。这使得一些如表单场景存在潜在的数据问题。
min
和 max
让 value
超出范围不会触发 onChange
事件?onChange
事件为用户触发事件,自行触发会导致表单库误以为变更来自用户操作。我们以错误样式展示超出范围的数值。
onBlur
等事件获取不到正确的 value?InputNumber 的值由内部逻辑封装而成,通过 onBlur
等事件获取的 event.target.value
仅为 DOM 元素的 value
而非 InputNumber 的实际值。例如通过 formatter
或者 decimalSeparator
更改展示格式,DOM 中得到的就是格式化后的字符串。你总是应该通过 onChange
获取当前值。
changeOnWheel
无法控制鼠标滚轮是否改变数值?不建议使用
type
属性
InputNumber 组件允许你使用 input 元素的所有属性最终透传至 input 元素,当你传入 type="number"
时 input 元素也会添加这个属性,这会使 input 元素触发原生特性(允许鼠标滚轮改变数值),从而导致 changeOnWheel
无法控制鼠标滚轮是否改变数值。