Step

引导用户按照流程完成任务的导航条。

何时使用 #

当任务复杂或者存在先后关系时,将其分解成一系列步骤,从而简化任务。

代码演示 #

基本用法 #

在最简单的情况下,Step 有三种类型,可以通过 shape 属性进行切换。

circle类型可通过labelPlacement设置文本排列方向。

垂直模式 #

对于点型和圆圈型的 Step 组件而言,可以通过设置 direction 属性设置其展示方向为垂直。 箭头形不支持垂直模式。

自定义图标和百分比展示 #

可以在点型和圆形步骤条中使用图标,圆形步骤条还支持使用百分比。

步骤运行错误 #

可通过自定义 step item 来实现当前步骤的状态。

禁用步骤项 #

可以通过在 Step.Item 上设置 disabled 属性来禁用某个步骤。

步骤项自定义渲染 #

Step.Item 默认有三种状态,分别是 wait, process, finish。 用户可以通过传递 itemRender 属性进行自定义的渲染。

不可点击 #

只读模式,不可触发回调。

步骤切换 #

通常配合内容及按钮使用,表示一个流程的处理进度。

API #

Step #

参数 说明 类型 默认值 是否必填
current 当前步骤 number 0
shape 类型 StepShape 'circle'
direction 展示方向 StepDirection 'hoz'
labelPlacement 横向布局时的内容排列方式 StepDirection 'ver'
readOnly 是否只读模式 boolean -
animation 是否开启动效 boolean true
itemRender 自定义渲染节点

签名:
参数:
index: 节点索引
status: 节点状态
title: 节点标题,仅在 shape='circle' 时会传递
content: 节点内容,仅在 shape='circle' 时会传递
返回值:
节点的渲染结果
(
index: number,
status: StepStatus,
title?: ReactNode,
content?: ReactNode
) => React.ReactNode
-
stretch 宽度是否横向拉伸 boolean false

Step.Item #

参数 说明 类型 默认值 是否必填
status 步骤的状态,如不传,会根据外层的 Step 的 current 属性生成 StepStatus -
title 标题 React.ReactNode -
icon 图标 string -
content 内容填充,shape 为 arrow 时无效 React.ReactNode -
itemRender StepItem 的自定义渲染,会覆盖父节点设置的 itemRender

签名:
参数:
index: 节点索引
status: 节点状态
title: 节点标题,仅在 shape='circle' 时会传递
content: 节点内容,仅在 shape='circle' 时会传递
返回值:
节点的渲染结果
(
index: number,
status: StepStatus,
title?: React.ReactNode,
content?: React.ReactNode
) => React.ReactNode
-
percent 百分比 number -
disabled 是否禁用 boolean -
onClick 点击步骤时的回调

签名:
参数:
index: 节点索引
(index: number) => unknown -

StepDirection #

export type StepDirection = 'hoz' | 'ver';

StepStatus #

export type StepStatus = 'wait' | 'process' | 'finish';

StepShape #

export type StepShape = 'circle' | 'arrow' | 'dot';

FAQ #

为什么设置 Step 的展示方向不生效? #

Step组件有三种类型(shape) shape?: 'arrow' | 'circle' | 'dot';, 其中:

  • shape='arrow' 只有一种模式;
  • shape='circle' 有两种方向;
    • direction='ver' 垂直方向
    • direction='hoz' 水平方向,根据文案与图标位置的不同分为两种模式
      • labelPlacement='hoz' 文案与图标 左右布局
      • labelPlacement='ver' 文案与图标 上下布局
  • shape='dot' 有两种方向;
    • direction='ver' 垂直方向
    • direction='hoz' 水平方向

如果发现 step 展示方向设置不生效,可先检查是否使用了正确的 API(比如labelPlacement就仅在shape='circle' direction='hoz'时才生效。