跳到内容

DatePickerAPI

React DatePicker 组件的 API 参考文档。了解此导出模块的 props、CSS 和其他 API。

演示

导入

import { DatePicker } from '@mui/x-date-pickers/DatePicker';
// or
import { DatePicker } from '@mui/x-date-pickers';
// or
import { DatePicker } from '@mui/x-date-pickers-pro';

阅读这篇关于最小化 bundle size 的指南,了解它们之间的区别。

Props

名称类型默认值描述
autoFocusbool-

如果 true,则在首次挂载期间主元素获得焦点。此主元素是: - 如果有任何可见视图选择的元素(即:`day` 视图上选定的日期)。 - 如果渲染了字段,则为 `input` 元素。

closeOnSelectbool`true` 用于桌面,`false` 用于移动设备(基于所选的 wrapper 和 `desktopModeMediaQuery` prop)。

如果 true,则在提交完整日期后,弹出框或模态框将关闭。

dayOfWeekFormatterfunc(date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()

格式化日历标题中显示的星期几。

签名:function(date: TDate) => string
  • date 适配器提供的星期几的日期。

返回值: 要显示的名称。

defaultValueobject-

默认值。当组件不受控制时使用。

desktopModeMediaQuerystring'@media (pointer: fine)'

CSS 媒体查询,当 `Mobile` 模式将更改为 `Desktop` 时。

disabledboolfalse

如果 true,则禁用选择器和文本字段。

disableFutureboolfalse

如果 true,则禁用日期组件的当前日期之后的值,时间组件的时间以及日期时间组件的两者。

disableHighlightTodayboolfalse

如果 true,则今天的日期在渲染时不会以圆圈突出显示。

disableOpenPickerboolfalse

如果 true,则不会渲染打开选择器的按钮(仅渲染字段)。

disablePastboolfalse

如果 true,则禁用日期组件的当前日期之前的值,时间组件的时间以及日期时间组件的两者。

displayWeekNumberbool-

如果 true,则将在日历中显示周数。

fixedWeekNumbernumber-

日期视图将显示当前月份结束后所需的周数,以匹配此值。设置为 6 以在公历中具有固定周数

formatstring-

在 input(s) 中渲染时的日期格式。默认为基于所用 `views` 的本地化格式。

formatDensity'dense'
| 'spacious'
"dense"

输入中渲染的格式密度。将 `formatDensity` 设置为 `\"spacious\"` 将在每个 `/`、`-` 和 `.` 字符前后添加一个空格。

inputRefref-

传递 `input` 元素的 ref。

labelnode-

标签内容。

loadingboolfalse

如果 true,则调用 `renderLoading` 而不是渲染日期日历。可用于预加载信息并在日历中显示。

localeTextobject-

组件文本的语言环境。允许覆盖来自 `LocalizationProvider` 和 `theme` 的文本。

maxDateobject2099-12-31

最大可选择日期。

minDateobject1900-01-01

最小可选择日期。

monthsPerRow3
| 4
3

每行渲染的月份数。

namestring-

Name 属性,由 Field 中的 `input` 元素使用。

onAcceptfunc-

当值被接受时触发的回调。

签名:function(value: TValue, context: FieldChangeHandlerContext) => void
  • value 刚刚被接受的值。
  • context 包含当前值的验证结果的上下文。
onChangefunc-

当值更改时触发的回调。

签名:function(value: TValue, context: FieldChangeHandlerContext) => void
  • value 新值。
  • context 包含当前值的验证结果的上下文。
onClosefunc-

当弹出窗口请求关闭时触发的回调。在受控模式下使用(请参阅 `open`)。

onErrorfunc-

当与当前值关联的错误更改时触发的回调。当检测到验证错误时,`error` 参数包含非空值。这可用于渲染适当的表单错误。

签名:function(error: TError, value: TValue) => void
  • error 当前值无效的原因。
  • value 与错误关联的值。
onMonthChangefunc-

在月份更改时触发的回调。

签名:function(month: TDate) => void
  • month 新月份。
onOpenfunc-

当弹出窗口请求打开时触发的回调。在受控模式下使用(请参阅 `open`)。

onSelectedSectionsChangefunc-

当选定部分更改时触发的回调。

签名:function(newValue: FieldSelectedSections) => void
  • newValue 新的选定部分。
onViewChangefunc-

在视图更改时触发的回调。

签名:function(view: TView) => void
  • view 新视图。
onYearChangefunc-

在年份更改时触发的回调。

签名:function(year: TDate) => void
  • year 新年份。
openboolfalse

控制弹出框或对话框的打开状态。

openTo'day'
| 'month'
| 'year'
-

默认可见视图。当组件视图不受控制时使用。必须是 `views` 列表中有效的选项。

orientation'landscape'
| 'portrait'
-

强制以特定方向渲染。

reduceAnimationsbool`@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` 匹配 Android <10 或 iOS <13

如果 true,则禁用繁重的动画。

referenceDateobject使用验证 props 的最接近的有效日期时间,除了像 `shouldDisable<...>` 这样的回调。

当 `value` 和 `defaultValue` 都为空时,用于生成新值的日期。

renderLoadingfunc() => <span>...</span>

当传递 loading true 时显示的组件。

签名:function() => React.ReactNode

    返回值: 加载时要渲染的节点。

    selectedSections'all'
    | 'day'
    | 'empty'
    | 'hours'
    | 'meridiem'
    | 'minutes'
    | 'month'
    | 'seconds'
    | 'weekDay'
    | 'year'
    | number
    -

    当前选定的部分。此 prop 接受四种格式:1. 如果提供数字,则将选择此索引处的部分。2. 如果提供 `FieldSectionType` 类型的字符串,则将选择第一个具有该名称的部分。3. 如果提供 `\"all\"`,则将选择所有部分。4. 如果提供 `null`,则不会选择任何部分。如果未提供,则选定的部分将在内部处理。

    shouldDisableDatefunc-

    禁用特定日期。
    警告:此函数可以被多次调用(例如,在渲染日期日历、检查焦点是否可以移动到某个日期等时)。昂贵的计算会影响性能。

    签名:function(day: TDate) => boolean
    • day 要测试的日期。

    返回值: 如果 true,则将禁用该日期。

    shouldDisableMonthfunc-

    禁用特定月份。

    签名:function(month: TDate) => boolean
    • month 要测试的月份。

    返回值: 如果 true,则将禁用该月份。

    shouldDisableYearfunc-

    禁用特定年份。

    签名:function(year: TDate) => boolean
    • year 要测试的年份。

    返回值: 如果 true,则将禁用该年份。

    showDaysOutsideCurrentMonthboolfalse

    如果 true,则渲染当前月份之外的日期
    - 如果定义了 fixedWeekNumber,则渲染日期以具有请求的周数。
    - 如果未定义 fixedWeekNumber,则渲染日期以填充当前月份的第一周和最后一周。
    - 如果 `calendars` 在范围选择器上等于多个 `1`,则忽略。

    slotPropsobject{}

    用于每个组件 slot 的 props。

    slotsobject{}

    可覆盖的组件 slots。

    有关更多详细信息,请参阅下面的 Slots API。

    sxArray<func
    | object
    | bool>
    | func
    | object
    -

    允许定义系统覆盖以及其他 CSS 样式的系统 prop。

    有关更多详细信息,请参阅 `sx` 页面

    timezonestring`value` 或 `defaultValue` prop 的时区已定义,否则为 'default'。

    选择用于值的时区。示例:“default”、“system”、“UTC”、“America/New_York”。如果您将来自其他时区的值传递给某些 props,它们将在使用前转换为此时区。

    有关更多详细信息,请参阅 时区文档

    valueobject-

    选定的值。当组件受控时使用。

    view'day'
    | 'month'
    | 'year'
    -

    可见视图。当组件视图受控时使用。必须是 `views` 列表中有效的选项。

    viewRenderers{ day?: func, month?: func, year?: func }-

    为每个部分定义自定义视图渲染器。如果 `null`,则该部分将仅具有字段编辑。如果 `undefined`,将使用内部定义的视图。

    viewsArray<'day'
    | 'month'
    | 'year'>
    -

    可用视图。

    yearsOrder'asc'
    | 'desc'
    'asc'

    默认情况下,年份按升序(时间顺序)显示。如果为 `desc`,则年份按降序显示。

    yearsPerRow3
    | 4
    桌面端为 4,移动端为 3

    每行渲染的年份数。

    `ref` 被转发到根元素。

    Slots

    Slot 名称类名默认组件描述
    actionBarPickersActionBar操作栏的自定义组件,它位于选择器视图下方。
    calendarHeaderPickersCalendarHeader日历标题的自定义组件。查看 PickersCalendarHeader 组件。
    clearButtonIconButton用于清除值的按钮。
    clearIconClearIcon在清除按钮内显示的图标。
    dayPickersDay日的自定义组件。查看 PickersDay 组件。
    desktopPaperPickersPopperPaper在桌面选择器的 Popper 内渲染的 paper 的自定义组件。
    desktopTransition当 `reduceAnimations` 为 `true` 时,来自 '@mui/material' 的 Grow 或 Fade。桌面 popper Transition 的自定义组件。
    desktopTrapFocus来自 '@mui/material' 的 TrapFocus。用于捕获桌面视图内焦点的自定义组件。
    dialogPickersModalDialogRoot用于在移动设备上渲染视图的对话框的自定义组件。
    field用于使用键盘输入日期的组件。
    inputAdornmentInputAdornment显示在开始或结束输入装饰上的组件,用于在桌面上打开选择器。
    layout用于包装布局的自定义组件。它包装工具栏、视图、操作栏和快捷方式。
    leftArrowIconArrowLeft在左视图切换按钮中显示的图标。
    mobilePaper来自 '@mui/material' 的 Paper。在移动选择器的 Dialog 内渲染的 paper 的自定义组件。
    mobileTransition来自 '@mui/material' 的 Fade。移动对话框 Transition 的自定义组件。
    monthButtonMonthCalendarButton在 `month` 视图中显示以渲染单个月份的按钮。
    nextIconButtonIconButton允许切换到右侧视图的按钮。
    openPickerButtonIconButton在桌面上打开选择器的按钮。
    openPickerIcon在桌面上的打开选择器按钮中显示的图标。
    popper来自 '@mui/material' 的 Popper。用于在桌面渲染视图的 popper 的自定义组件。
    previousIconButtonIconButton允许切换到左侧视图的按钮。
    rightArrowIconArrowRight在右视图切换按钮中显示的图标。
    shortcutsPickersShortcuts快捷方式的自定义组件。
    switchViewButtonIconButton显示用于在不同日历视图之间切换的按钮。
    switchViewIconArrowDropDown在 SwitchViewButton 中显示的图标。当打开的视图为 `year` 时旋转 180°。
    textField来自 '@mui/material' 的 TextField 或 PickersTextField(如果 `enableAccessibleFieldDOMStructure` 为 `true`)。具有用于在默认字段内渲染值的输入的表单控件。
    toolbarDatePickerToolbar在视图上方渲染的工具栏的自定义组件。
    yearButtonYearCalendarButton在 `year` 视图中显示以渲染单个年份的按钮。

    源代码

    如果您在此页面中找不到信息,请考虑查看组件的实现以获取更多详细信息。