跳到主要内容

Stepper 步进器

数字步进控件——[−][ N ][+] 三段拼接,到达 min/max 自动禁用对应按钮。

实时预览

下方渲染的就是 src/components/ui/Stepper/Stepper.tsx 本体,通过 react-native-web 翻译成浏览器节点。

独立
12
min=1, max=99
下单清单
统一冰红茶
¥120 / 箱 · 库存 50
12
阿萨姆奶茶
¥96 / 箱 · 库存 80
0
老坛酸菜面
¥48 / 箱 · 库存 30
30
合计 62 箱 · ¥3,840

视觉规范

元素规则
高度32px(默认)/ 28px(sm)
圆角8px(外层),中间数字框无独立圆角
按钮32×32 描边,± 18px
数字框min-width 48,1px 上下边线,无左右边线
描边1px #EDEDED
禁用按钮 opacity: 0.4(达到 min/max 时)

用法

import { Stepper } from '@unif/react-native-design';

const [qty, setQty] = useState(12);

<Stepper value={qty} onChange={setQty} min={1} max={99} />

{/* 自定义步长 */}
<Stepper value={packs} onChange={setPacks} step={6} min={0} max={120} />

{/* 小尺寸 */}
<Stepper size="sm" value={n} onChange={setN} min={0} max={9} />

API

PropType默认说明
valuenumber当前值
onChange(n) => void变更回调
minnumber?0下限(达到时 禁用)
maxnumber?99上限(达到时 + 禁用)
stepnumber?1步长
size'sm' | 'md''md'高度 28 / 32

不要

  • ❌ 不要在 Stepper 中间放可输入的 TextInput——下单场景请用专门的 InputNumber 控件(待规划)
  • ❌ 不要去掉描边或圆角——Stepper 必须看起来"可点击"