输入或选择日期的控件。当用户需要输入一个日期,可以点击标准输入框,弹出日期面板进行选择。
DatePicker 升级到 DatePicker2 #1.22版本增加当前组件
功能变化:
dayjs 日期库替换了 momentWeekPicker 和 QuarterPicker 选择器preset 属性,支持预设日期API变化:
defaultVisibleMonth 属性,请使用 defaultPanelValue 替代(仅名字替换)footerRender 属性,请使用 extraFooterRender 替代showTime 之前属性类型既支持 Boolean 也支持 Object;现升级为仅支持 Boolean 类型,使用 timePanelProps 来传入时分秒的时间选择属性onChange 和 onOk 等事件返回日期对象为 Dayjs 类型日期的国际化包括组件的国际化跟日期库dayjs的国际化两部分。
import { DatePicker2, ConfigProvider } from '@alifd/next';
import 'dayjs/locale/en'; // 组件库国际化
import en from '@alifd/next/lib/locale/en-us'; // 组件国际化
function App() {
return (
<ConfigProvider locale={en}>
<DatePicker2 />
</ConfigProvider>
);
}
ReactDOM.render(<App />, mountNode);
如果需要同时选择时间,可以通过 showTime 属性开启,timePanelProps 支持传入TimePickerPanel的属性,例如 format, defaultValue 等。
日期选择框分为 DatePicker 和 RangePicker 两种类型,分别又有 date、month、year, week, quarter 五种不同模式。
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| disabledDate | 禁用日期函数 签名: Function(value: Dayjs, view: String) => Boolean 参数: value: {Dayjs} 日期值 mode: {String} 当前视图类型 返回值: {Boolean} 是否禁用 |
Function | () => false |
| dateCellRender | 自定义日期渲染函数 签名: Function(value: Object) => ReactNode 参数: value: {Dayjs} 日期值 返回值: {ReactNode} node节点 |
Function | - |
| onPanelChange | 日历面板切换的回调 签名: Function(value: Dayjs, mode: String) => void 参数: value: {Dayjs} 日期对象 |
Function | - |
| showTime | 是否使用时间控件 | Boolean | false |
| resetTime | 每次选择日期时是否重置时间 | Boolean | false |
| preset | 预设日期快捷选择 | Object | - |
| extraFooterRender | 自定义额外的页脚 签名: Function() => ReactNode 返回值: {ReactNode} 自定义的面板页脚组件 |
Function | () => null |
| disabled | 是否禁用 | Boolean | false |
| hasClear | 是否显示清空按钮 | Boolean | true |
| size | 输入框尺寸 可选值: small, medium, large |
Enum | medium |
| inputReadOnly | 只读 | Boolean | false |
| inputProps | 输入框其他属性 | Object | - |
| visible | 弹层显示状态 | Boolean | - |
| defaultVisible | 弹层默认是否显示 | Boolean | false |
| onVisibleChange | 弹层展示状态变化时的回调 签名: Function(visible: Boolean) => void 参数: visible: {Boolean} 弹层是否显示 |
Function | func.noop |
| popupTriggerType | 弹层触发方式 可选值: 'click', 'hover' |
Enum | 'click' |
| popupAlign | 弹层对齐方式,具体含义见 OverLay文档 | String | 'tl tl' |
| popupContainer | 弹层容器 | any | - |
| popupStyle | 弹层自定义样式 | Object | - |
| popupClassName | 弹层自定义样式类 | String | - |
| popupProps | 弹层其他属性 | Object | - |
| followTrigger | 是否跟随滚动 | Boolean | - |
| popupProps | 弹层其他属性 | Object | - |
| isPreview | 是否为预览态 | Boolean | - |
| renderPreview | 预览态模式下渲染的内容 签名: Function(value: Dayjs) => void 参数: value: {Dayjs} 日期 |
Function | - |
| dateInputAriaLabel | 日期输入框的 aria-label 属性 | String | - |
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| placeholder | 输入提示 | String | - |
| value | 日期值(受控) | Dayjs/String | - |
| defaultValue | 初始日期值 | Dayjs/String | - |
| format | 日期格式 | String | YYYY-MM |
| outputFormat | 输出格式 | String | ((date: Dayjs, dateStr: String) => any) |
| onChange | 日期值改变时的回调 签名: Function(value: Dayjs/String) => void 参数: value: {Dayjs/String} 日期值 |
Function | func.noop |
| onOk | 点击确认按钮时的回调 签名: Function() => Array 返回值: {Array} 日期范围 |
Function | func.noop |
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| mode | 日期面板的状态 可选值: date、month、year, week, quarter |
Enum | date |
| placeholder | 输入提示 | String | [String, String] |
| value | 日期值(受控) | [Dayjs, Dayjs] | - |
| defaultValue | 初始日期值 | [Dayjs, Dayjs] | - |
| format | 日期格式 | String/Function | YYYY-MM |
| outputFormat | 输出格式 | String | ((date: [Dayjs, Dayjs], dateStr: [String, String]) => any) |
| onChange | 日期值改变时的回调 签名: Function(value) => void 参数: value: {[Dayjs, Dayjs]} 日期范围 |
Function | func.noop |
| onCalendarChange | 待选日期发生变化的回调 签名: Function(value, dateStrings) => void 参数: value: {[Dayjs, Dayjs]} 日期范围 dateStrings: {[string, string]} |
Function | func.noop |
| onOk | 点击确认按钮时的回调 签名: Function(value) => void 参数: value: {[Dayjs, Dayjs]} 日期范围 |
Function | func.noop |