步进器
Stepper 是一个用于执行递增和递减操作的控件。它允许用户通过点击“+”或“-”按钮来增加或减少数值。该组件也支持触发编辑状态变化的回调函数。
属性
1. title(可选,字符串)
- 描述:指定步进器的标题,通常用于说明步进器的目的。
- 类型:
string
- 示例:
1<Stepper
2 title="Adjust Volume"
3 onIncrement={handleIncrement}
4 onDecrement={handleDecrement}
5/>
2. children(可选,虚拟节点)
- 描述:用于描述步进器的目的的视图内容。可以使用多个子视图来构建控件的外观。此属性和
title 属性为互斥关系,只能选择其一。
- 类型:
(VirtualNode | undefined | null | (VirtualNode | undefined | null)[])[] | VirtualNode
- 示例:
1<Stepper
2 onIncrement={handleIncrement}
3 onDecrement={handleDecrement}
4>
5 <Text>Adjust Volume</Text>
6</Stepper>
3. onIncrement(必选,回调函数)
- 描述:当用户点击或触摸“+”按钮时,执行此函数。
- 类型:
() => void
- 示例:
1const handleIncrement = () => {
2 console.log("Incremented");
3}
4
5<Stepper
6 onIncrement={handleIncrement}
7 onDecrement={handleDecrement}
8/>
4. onDecrement(必选,回调函数)
- 描述:当用户点击或触摸“-”按钮时,执行此函数。
- 类型:
() => void
- 示例:
1const handleDecrement = () => {
2 console.log("Decremented")
3}
4
5<Stepper onIncrement={handleIncrement} onDecrement={handleDecrement} />
5. onEditingChanged(可选,回调函数)
- 描述:当编辑开始和结束时调用的函数。例如,在 iOS 上,用户长按步进器的增减按钮时,会触发
onEditingChanged 回调函数,表示编辑状态的变化。
- 类型:
(value: boolean) => void
- 示例:
1const handleEditingChanged = (isEditing: boolean) => {
2 console.log("Editing started:", isEditing)
3}
4
5<Stepper
6 onIncrement={handleIncrement}
7 onDecrement={handleDecrement}
8 onEditingChanged={handleEditingChanged}
9/>
示例代码
以下是一个完整的示例,展示了如何使用 Stepper 组件:
1const handleIncrement = () => {
2 console.log("Volume increased")
3}
4
5const handleDecrement = () => {
6 console.log("Volume decreased")
7}
8
9const handleEditingChanged = (isEditing: boolean) => {
10 console.log("Editing started:", isEditing)
11}
12
13<Stepper
14 title="Volume Control"
15 onIncrement={handleIncrement}
16 onDecrement={handleDecrement}
17 onEditingChanged={handleEditingChanged}
18/>
注意事项
title 和 children 属性是互斥的。只能使用一个来描述步进器的目的。
onEditingChanged 回调函数是可选的,只在支持编辑状态的情况下触发,例如长按按钮时。
小结
Stepper 控件提供了一个简单的接口来实现递增和递减操作,支持在用户交互时触发回调。通过配置 title 或 children 属性来指定控件的目的,并且可以使用 onIncrement 和 onDecrement 函数定义按钮点击后的行为。