Calendar

size
mode
disabled
readOnly
minValue
maxValue
focusedValue
import {Calendar} from '@gravity-ui/date-components';

Calendar 是一个灵活的、用户友好的日历组件,用于 React 应用程序。它允许用户轻松查看、选择和管理日期。非常适合活动安排、预订系统以及任何需要选择日期的应用程序。如果设置 value 属性,则可以对其进行控制。或者,如果你不设置任何值,它可能会不受控制,但在这种情况下,你可以使用可选属性 defaultValue管理初始状态。默认情况下,组件不受控制。

有用的补充

要以正确的格式设置日期,您可能需要包括 D ate Util s 库中的其他助手

import {dateTimeParse} from '@gravity-ui/date-utils';

大小

要控制大小, Calendar 请使用该 size 属性。默认大小为 m

<Calendar size="m" />
<Calendar size="l" />
<Calendar size="xl" />

价值

最小值和最大值

minValue 属性允许您指定用户可以输入的最早日期和时间。相反,该 maxValue 属性指定了可以输入的最新日期和时间。用户的所有其他值都将被禁用。

<Calendar minValue={dateTimeParse('01.01.2024')} maxValue={dateTimeParse('01.01.2025')} />

模式

定义 Calendar 应显示的时间间隔。有了它, mode 你可以以可控的方式进行选择。对于不受控制的方式,您无需指定任何值。你也可以使用 defaultMode 道具以不受控制的方式设置初始模式。

days -的默认模式 Calendar。它显示一个月中的天数。

months -显示一年中的月份

quarters -按年显示季度(不可作为数值提供 defaultMode

years -显示几年的选择时间

你可以使用 prop 来限制已启用的模式 modes

<Calendar defaultMode="months"/>

国家

已禁用

您不希望用户能够与组件交互的状态。 Calendar

<Calendar disabled={true} />

只读

readOnly 是一个布尔属性,当设置为 true 时,该 Calendar 组件对用户来说是不可变的。这意味着,虽然输入将显示其当前值,但用户将无法对其进行更改。

<Calendar readOnly={true} />

聚焦价值

允许选择 Calendar 视图聚焦的日期。如果你需要对其进行控制,你应该使用 focusedValue 道具。您可以使用可选 prop defaultFocusedValue 为不受控制的组件设置初始焦点值。

<Calendar defaultFocusedValue={dateTimeParse('01.01.2020')} />

时区

timeZone 是设置输入中值的时区的属性。了解有关时区的更多信息

属性

姓名描述类型默认
咏叹调描述者控件的 aria-describedby 属性string
aria-详细信息控件的 aria-details 属性string
aria-label控件的 aria-label 属性string
aria-labelledby控件的 aria-labelledby 属性string
autoFocus控件的 autofocus 属性boolean
className控件的包装器类名string
defaultFocusedValue日历首次挂载时聚焦的日期(不受控制)DateTime
defaultMode在日历中显示的初始模式days years
defaultValue设置非受控组件的初始值。DateTime
已禁用表示用户无法与控件进行交互booleanfalse
focusedValue设置包含此值的非受控组件的默认视图DateTime null
id控件的 id 属性string
isDateUnavailable为日历的每个日期调用的回调。如果返回 true,则该日期不可用。((date: DateTime) => boolean)
isWeekend为日历的每个日期调用的回调。如果返回 true,则日期为周末。((date: DateTime) => boolean)
maxValue用户可以选择的最大允许日期。DateTime
minValue用户可以选择的最小允许日期。DateTime
模式定义 Calendar 应以 coltrolled 方式显示的时间间隔。days years
模式可供用户使用的模式局部的<Record<CalendarLayout, boolean>>{days: true, months: true, quarters: false, years: true }
onBlur当控件失去对焦时触发。提供焦点事件作为回调的参数(e:FocusEvent<Element, Element>) => 无效)
onFocus当控件获得焦点时触发。提供焦点事件作为回调的参数(e:FocusEvent<Element, Element>) => 无效)
onFocusUpdate当控件的聚焦日期发生变化时触发。((date: DateTime) => void)
onUpdate当值发生变化时触发。((value: DateTime) => void
onUpdateMode模式更改时触发。(值:'天数'| '月'| '四分之一'| 'years) = 空白>
readOnly日历值是否不可变。booleanfalse
大小控件的大小"m" "xl""m"
风格为元素设置行内样式。CSSProperties
timeZone设置时区。了解有关时区的更多信息string
价值控件的价值DateTime null