数字输入框

仅允许输入数字格式的输入框。

导入

import { NumberInput } from "@resolid/react-ui";

用法

值限制

<NumberInput max={10} />
<NumberInput min={10} />
<NumberInput min={10} max={20} />

格式化

<NumberInput
  parse={(value) => value.replace(/\$\s?|(,*)/g, '')}
  format={(value) => (!Number.isNaN(value) ? `$ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',') : '$ ')}
/>

可控

值: 0
const [value, setValue] = useState(0);

return (
  <div className={"flex flex-col gap-2"}>
    <div>值: {value}</div>
    <NumberInput value={value} onChange={(value) => setValue(value)} placeholder="数字输入框" />
  </div>
);

大小

<NumberInput size={"xs"} placeholder={"XS 超小"} />
<NumberInput size={"sm"} placeholder={"SM 小型"} />
<NumberInput placeholder={"默认大小"} />
<NumberInput size={"lg"} placeholder={"LG 大型"} />
<NumberInput size={"xl"} placeholder={"XL 超大"} />

前置元素

<NumberInput leading={<SpriteIcon size={"sm"} name={"github"} />} placeholder={"仓库数量"} />

滚轮改变

<NumberInput leading={<SpriteIcon size={"sm"} name={"github"} />} placeholder={"仓库数量"} />

属性

属性size类型"xs" | "sm" | "md" | "lg" | "xl"默认值'md'必须false
属性value类型number默认值-必须false
属性defaultValue类型number默认值-必须false
属性disabled类型boolean默认值false必须false
属性required类型boolean默认值false必须false
属性invalid类型boolean默认值false必须false
属性readOnly类型boolean默认值false必须false
属性block类型boolean默认值false必须false
属性htmlSize类型number默认值-必须false
属性placeholder类型string默认值-必须false
属性leading类型ReactNode默认值-必须false
属性leadingWidth类型number默认值-必须false
属性leadingPointer类型boolean默认值false必须false
属性onChange类型((value: number) => void)默认值-必须false
属性step类型number默认值1必须false
属性min类型number默认值-Infinity必须false
属性max类型number默认值Infinity必须false
属性precision类型number默认值0必须false
属性format类型(value: string) => string默认值-必须false
属性parse类型(value: string) => string默认值-必须false
属性mouseWheel类型boolean默认值false必须false