何时使用
当用户需要输入一个时间,可以点击输入框,在弹出的时间选择面板上操作。时间选择面板仅支持 24 小时制。
组件默认使用 moment 实例作为输入输出值,推荐使用结合 moment 的方式使用组件。此外,组件也支持传入时间字符串的方式,例如直接传入 "12:00:00"。用户传入什么类型的 value/defaultValue 值,就会在 onChange 中返回相应的类型。
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
label | 按钮的文案 | ReactNode | - |
size | 时间选择框的尺寸 可选值: 'small', 'medium', 'large' | Enum | 'medium' |
state | 输入框状态 可选值: 'error', 'success' | Enum | - |
placeholder | 输入框提示 | String | - |
value | 时间值(moment 对象或时间字符串,受控状态使用) | custom | - |
defaultValue | 时间初值(moment 对象或时间字符串,非受控状态使用) | custom | - |
hasClear | 是否允许清空时间 | Boolean | true |
format | 时间的格式 https://momentjs.com/docs/#/parsing/string-format/ | String | 'HH:mm:ss' |
hourStep | 小时选项步长 | Number | - |
minuteStep | 分钟选项步长 | Number | - |
secondStep | 秒钟选项步长 | Number | - |
disabledHours | 禁用小时函数 签名: Function(index: Number) => Boolean 参数: index: {Number} 时 0 - 23 返回值: {Boolean} 是否禁用 | Function | - |
disabledMinutes | 禁用分钟函数 签名: Function(index: Number) => Boolean 参数: index: {Number} 分 0 - 59 返回值: {Boolean} 是否禁用 | Function | - |
disabledSeconds | 禁用秒钟函数 签名: Function(index: Number) => Boolean 参数: index: {Number} 秒 0 - 59 返回值: {Boolean} 是否禁用 | Function | - |
renderTimeMenuItems | 渲染的可选择时间列表 [{ label: '01', value: 1 }] 签名: Function(list: Array, mode: String, value: moment) => Array 参数: list: {Array} 默认渲染的列表 mode: {String} 渲染的菜单 hour, minute, second value: {moment} 当前时间,可能为 null 返回值: {Array} 返回需要渲染的数据 | Function | - |
visible | 弹层是否显示(受控) | Boolean | - |
defaultVisible | 弹层默认是否显示(非受控) | Boolean | - |
popupContainer | 弹层容器 | any | - |
popupAlign | 弹层对齐方式, 详情见Overlay 文档 | String | 'tl tl' |
popupTriggerType | 弹层触发方式 可选值: 'click', 'hover' | Enum | 'click' |
onVisibleChange | 弹层展示状态变化时的回调 签名: Function(visible: Boolean, type: String) => void 参数: visible: {Boolean} 弹层是否隐藏和显示 type: {String} 触发弹层显示和隐藏的来源 fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发 | Function | func.noop |
popupStyle | 弹层自定义样式 | Object | - |
popupClassName | 弹层自定义样式类 | String | - |
popupProps | 弹层属性 | Object | - |
followTrigger | 是否跟随滚动 | Boolean | - |
disabled | 是否禁用 | Boolean | false |
isPreview | 是否为预览态 | Boolean | - |
renderPreview | 预览态模式下渲染的内容 签名: Function(value: MomentObject) => void 参数: value: {MomentObject} 时间 | Function | - |
onChange | 时间值改变时的回调 签名: Function(value: Object/String) => void 参数: value: {Object/String} 时间对象或时间字符串 | Function | func.noop |
可以通过 defaultValue 传入默认时间值,并且可以通过选择改变该值。onChange 回调参数的值的类型取决于 defaultValue 的类型。
TimePicker 使用和 Input 组件相同的输入框尺寸,可以通过 size 属性进行设置。
通过 value 和 onChange 实现受控,仅支持通过选择实现受控。
禁用全部和禁用部分选择项
可以通过 format 属性格式化时间值,此外该属性还会影响到时间列的展示。
可以通过 hourStep, minuteStep, secondStep 分别设置时分秒的选项间隔。
配合 Field 使用