Skip to content

Stepper 步进器

介绍

步进器由增加按钮、减少按钮和输入框组成,用于在一定范围内输入、调整数字。

引入

ts
import { IBestStepper } from "@ibestservices/ibest-ui";

代码演示

基础用法

基础用法

TIP

通过 defaultValue 设置默认输入值,可以通过 onChange 事件监听到输入值的变化。

点我查看代码
ts
IBestStepper({
  onChange(val) {
    console.log("触发变化了", val);
  },
});

步长设置

步长设置

TIP

通过 step 属性设置每次点击增加或减少按钮时变化的值,默认为 1

点我查看代码
ts
IBestStepper({
  step: 2,
});

限制输入范围

限制输入范围

TIP

通过 minmax 属性限制输入值的范围,默认超出范围后会自动校正最大值或最小值,通过 autoFixed 可以关闭自动校正。

点我查看代码
ts
IBestStepper({
  defaultValue: 5,
  min: 5,
  max: 8,
});

限制输入整数

限制输入整数

TIP

设置 integer 属性后,输入框将限制只能输入整数。

点我查看代码
ts
IBestStepper({
  integer: true,
});

禁用状态

禁用状态

TIP

通过设置 disabled 属性来禁用步进器,禁用状态下无法点击按钮或修改输入框。

点我查看代码
ts
IBestStepper({
  disabled: true,
});

禁用输入框

禁用输入框

TIP

通过设置 disableInput 属性来禁用输入框,此时按钮仍然可以点击。

点我查看代码
ts
IBestStepper({
  disableInput: true,
});

固定小数位数

固定小数位数

TIP

通过设置 decimalLength 属性可以保留固定的小数位数。

点我查看代码
ts
IBestStepper({
  defaultValue: 14,
  step: 0.2,
  decimalLength: 1,
});

自定义大小

自定义大小

TIP

通过 input-width 属性设置输入框宽度,通过 button-size 属性设置按钮大小和输入框高度。

点我查看代码
ts
IBestStepper({
  inputWidth: "80lpx",
  buttonSize: "64lpx",
});

API

@Props

参数说明类型默认值
min最小值string | number1
max最大值string | numberInfinity
autoFixed是否自动校正超出限制范围的数值,设置为 false 后输入超过限制范围的数值将不会自动校正booleantrue
defaultValue展示的默认值string | number1
step步长,每次点击时改变的值number | string1
inputWidth输入框宽度,默认单位为 lpxnumber | string64lpx
buttonSize按钮大小以及输入框高度,默认单位为 lpxnumber | string54lpx
decimalLength固定显示的小数位数number | string
integer是否只允许输入整数booleanfalse
disabled是否禁用步进器booleanfalse
disablePlus是否禁用增加按钮booleanfalse
disableMinus是否禁用减少按钮booleanfalse
disableInput是否禁用输入框booleanfalse
showPlus是否显示增加按钮booleantrue
showMinus是否显示减少按钮booleantrue
showInput是否显示输入框booleantrue
longPress是否开启长按手势,开启后可以长按增加和减少按钮booleantrue
validateTime多少毫秒触发自动校验修正,为 0 时不修正,因为输入框中的 blur 触发时机不随着点击失焦,只能采用自动修正方案,单位 msnumber1000
iconSize输入框中图标的宽度,默认单位为 lpxstring40lpx
buttonRadius按钮的圆角,默认单位为 lpxstring4lpx

Events

事件名说明事件类型
onChange当值变化时触发的事件(val: string|number) => void
onPlus点击增加按钮时触发() => void
onMinus点击较少按钮时触发() => void

常见问题

为什么 value 有时候会变成 string 类型?

这是因为用户输入过程中可能出现小数点或空值,比如 1.,这种情况下组件会抛出字符串类型。 如果希望 value 保持 number 类型,可以在 onChange 回调中手动转换。