@uiw/react-native
Version:
UIW for React Native
221 lines (178 loc) • 4.74 kB
Markdown
Stepper 步进器
---
用作增加或者减少当前数值。
<!--  -->
<!--rehype:style=zoom: 33%;float: right; margin-left: 15px;-->
### 基础示例
```jsx mdx:preview&background=#bebebe29
import React, { useState } from 'react';
import { Stepper } from '@uiw/react-native';
function Demo() {
const [value, setValue] = useState(1)
return (
<Stepper
size='small'
value={value}
onChange={(value)=>{
setValue(value)
}}
/>
);
}
export default Demo
```
### 尺寸
可选尺寸`small` `default` `large`:
```jsx mdx:preview&background=#bebebe29
import React, { useState } from 'react';
import { Stepper } from '@uiw/react-native';
import { View } from 'react-native';
function Demo() {
const [value, setValue] = useState(1)
return (
<View style={{ display:'flex', height: 150, justifyContent:'space-around' }}>
<Stepper
size='small'
value={value}
onChange={(value)=>{
setValue(value)
}}
/>
<Stepper
size='default'
value={value}
onChange={(value)=>{
setValue(value)
}}
/>
<Stepper
size='large'
value={value}
onChange={(value)=>{
setValue(value)
}}
/>
</View>
);
}
export default Demo
```
### 按钮禁止点击
```jsx mdx:preview&background=#bebebe29
import React, { useState } from 'react';
import { Stepper } from '@uiw/react-native';
function Demo() {
const [value, setValue] = useState(10)
return (
<Stepper
value={value}
disabled={true}
width={150}
onChange={(value)=>{
setValue(value)
}}
/>
);
}
export default Demo
```
### 长按增加
长按按钮自动增长数值
```jsx mdx:preview&background=#bebebe29
import React, { useState } from 'react';
import { Stepper } from '@uiw/react-native';
function Demo() {
const [value, setValue] = useState(1)
return (
<Stepper
disabledLongPress={true}
delayLong={100}
value={value}
onChange={(value)=>{
setValue(value)
}}
/>
);
}
export default Demo
```
### 限制取值范围
最大值`20`,最小值`10`
```jsx mdx:preview&background=#bebebe29
import React, { useState } from 'react';
import { Stepper } from '@uiw/react-native';
function Demo() {
const [value, setValue] = useState(10)
return (
<Stepper
value={value}
min={10}
max={20}
onChange={(value)=>{
setValue(value)
}}
/>
);
}
export default Demo
```
### 设置步进数
每次单击增长值 `5`
```jsx mdx:preview&background=#bebebe29
import React, { useState } from 'react';
import { Stepper } from '@uiw/react-native';
function Demo() {
const [value, setValue] = useState(10)
return (
<Stepper
value={value}
step={5}
onChange={(value)=>{
setValue(value)
}}
/>
);
}
export default Demo
```
### 禁止手动输入
```jsx mdx:preview&background=#bebebe29
import React, { useState } from 'react';
import { Stepper } from '@uiw/react-native';
function Demo() {
const [value, setValue] = useState(10)
return (
<Stepper
value={value}
disabledInput={true}
onChange={(value)=>{
setValue(value)
}}
/>
);
}
export default Demo
```
### Stepper Props
| 参数 | 说明 | 类型 | 默认值 |
|------|------|-----|------|
| `size` | 尺寸 | `'small' \| 'default' \| 'large'` | - |
| `color` | 颜色集合,具体项见下表 | Color | - |
| `width` | input 宽度,不包括两侧按钮 | number | - |
| `value` | 输入框当前值,开发者需要通过 onChange 事件来更新 value 值,必填 | number | - |
| `step` | 每次点击改变的间隔大小 | number | - |
| `min` | 最小值 | number | - |
| `max` | 最大值 | number | - |
| `disabled` | 按钮是否禁止点击 | boolean | - |
| `disabledInput` | 输入框是否禁止输入 | boolean | - |
| `disabledLongPress` | 按钮是否支持长按 | boolean | - |
| `delayLong` | 长按间隔 单位(ms) | number | - |
| `onChange` | 输入框值改变时触发的事件, 必填 | (value: number)=>void | - |
| `onErrorInput` | 输入框尝试输入错误数据触发的事件 | `(type: 'OVER' \| 'LOW', errorValue: number) => void` | - |
### Color
| 参数 | 说明 | 类型 | 默认值 |
|------|------|-----|------|
| `color` | 组件主色调 | string | `#108ee9` |
| `borderColor` | 组件边框颜色 | string | `#108ee9` |
| `controlColor` | 组件按钮 + - 颜色 | string | `#108ee9` |
| `valueColor` | 组件 value 值颜色 | string | `#108ee9` |