请填写此字段
–
–
–
如果您想在字段周围创建一个包装器,请确保将 fieldType
静态属性设置为 'single-input'
。 否则,选择器将不知道您的字段是单输入字段,并将使用多输入事件侦听器
如果您希望您的范围选择器看起来与简单选择器完全一样,您可以手动添加 endAdornment
至
更改格式密度
您可以使用 formatDensity
属性控制字段格式间距。 将 formatDensity
设置为 "spacious"
将在每个 /
、-
和 .
字符前后添加一个空格。
使用 Material PickersTextField
将 enableAccessibleFieldDOMStructure
传递给任何 Field 或 Picker 组件以启用可访问的 DOM 结构
您可以导入 PickersTextField
组件以创建自定义包装器
—
使用只读 TextField
如果您希望用户完全通过视图选择一个值,但仍然希望 UI 看起来像 TextField
,您可以将字段替换为只读 TextField
使用 Button
如果您希望用户完全通过视图选择一个值,并且您不希望 UI 看起来像 TextField
,您可以将字段替换为 Button
同样的方法可以应用于 DateRangePicker
如何构建自定义字段
构建自定义字段时的主要挑战是确保正确处理选择器传递的所有相关属性。
在下面的示例中,您可以看到自定义字段接收的属性类型始终具有相同的形状
interface JoyDateFieldProps
extends UseDateFieldProps<Dayjs, false>, // The headless field props
BaseSingleInputFieldProps<
Dayjs | null,
Dayjs,
FieldSection,
false, // `true` for `enableAccessibleFieldDOMStructure`
DateValidationError
> {} // The DOM field props
interface JoyDateTimeFieldProps
extends UseDateTimeFieldProps<Dayjs, false>, // The headless field props
BaseSingleInputFieldProps<
Dayjs | null,
Dayjs,
FieldSection,
false, // `true` for `enableAccessibleFieldDOMStructure`
DateTimeValidationError
> {} // The DOM field props
无头字段属性
此接口取决于您正在构建的字段类型(日期字段为 UseDateField
,时间字段为 UseTimeField
,日期范围字段为 UseDateRangeFieldProps
等)。
它包含
- 所有字段通用的基本属性(
value
、onChange
、format
、readOnly
等) - 此类型字段的验证属性(
minDate
、maxDate
、shouldDisableDate
等)
DOM 字段属性
此接口包含选择器传递给其字段以自定义渲染的属性。
这些属性被塑造成由内置字段接收,这些字段正在使用来自 @mui/material
的 TextField
。 当与另一种类型的输入(或根本没有输入)一起使用时,您将必须手动将它们传递给相关组件。
您可以查看 BaseSingleInputFieldProps
和 BaseMultiInputFieldProps
接口,以确切了解这些接口包含的内容。