React 组件
UGNumberInput 数字输入
用于精确输入、键盘调整和按钮步进,覆盖边界、精度、严格步进、格式化与空值语义。
导入方式
按需从包入口导入组件,并在应用入口引入一次样式文件。
tsx
import { UGNumberInput } from '@ug666/ui-react'基础与边界
达到最小值或最大值时,只禁用对应方向的控制按钮。
精度与严格步进
输入任意数字后,在提交时对齐步进并按指定精度输出。
控制器布局
默认控制器位于两侧,也可堆叠到右侧、替换图标或完全隐藏。
格式化与解析
格式只影响显示,parser 将用户输入还原为业务数值。
尺寸与状态
三种尺寸保持一致语义;只读、禁用和表单错误均有独立反馈。
原生表单与重置
格式化文本只负责显示;提交值始终是数值,原生 reset 恢复 defaultValue。
属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| value / defaultValue | number | null | — / 0 | 受控值或非受控初始值;null 表示空值。 |
| min / max | number | — | 限制提交值,并在边界禁用对应控制按钮。 |
| step | number | 1 | 按钮和方向键每次调整的数值。 |
| precision | number | 根据 step 推断 | 限制为 0 至 12 位,且不会低于 step 的有效小数位,支持科学计数法步长。 |
| stepStrictly | boolean | false | 将输入值对齐到以 min 或 0 为基准的步进网格。 |
| controls / controlsPosition | boolean / 'both' | 'right' | true / 'both' | 隐藏控制器,或在两侧/右侧堆叠控制按钮。 |
| readOnly / disabled | boolean | false | 只读保留聚焦与复制;禁用停止全部交互。 |
| valueOnClear | number | null | null | 输入被清空并提交时采用的值。 |
| formatter / parser | (number) => string / (string) => number | null | — / Number | 显示格式与业务数值之间的双向转换。 |
| decrementIcon / incrementIcon | ReactNode | 内置图标 | 覆盖减少与增加控制按钮的图标,不改变按钮语义。 |
| size | 'sm' | 'default' | 'lg' | 'default' | 控件尺寸,可继承 ConfigProvider。 |
| onValueChange | (value: number | null) => void | — | 输入或步进产生有效值时触发。 |
| onValueCommit | (value: number | null) => void | — | 失焦、Enter 或控制按钮提交后触发。 |
| name / form | string | — | 以未格式化的业务数值参与原生表单提交,并支持外部表单关联。 |
| 原生属性 | InputHTMLAttributes | — | 透传 required、aria-*、autocomplete 等原生输入属性。 |