請填寫此欄位
–
–
–
如果您想在欄位周圍建立包裝函式,請確保將 fieldType
靜態屬性設定為 'single-input'
。否則,選擇器將不知道您的欄位是單一輸入欄位,並使用多輸入事件監聽器
如果您希望您的範圍選擇器看起來與簡單選擇器完全相同,您可以手動新增 endAdornment
至
變更格式密度
您可以使用 formatDensity
prop 控制欄位格式間距。將 formatDensity
設定為 "spacious"
將在每個 /
、-
和 .
字元前後新增空格。
使用 Material PickersTextField
將 enableAccessibleFieldDOMStructure
傳遞到任何 Field 或 Picker 元件,以啟用無障礙 DOM 結構
您可以匯入 PickersTextField
元件以建立自訂包裝函式
—
使用唯讀 TextField
如果您希望使用者完全透過檢視畫面選擇值,但您仍然希望 UI 看起來像 TextField
,您可以將欄位替換為唯讀 TextField
使用 Button
如果您希望使用者完全透過檢視畫面選擇值,並且您不希望 UI 看起來像 TextField
,您可以將欄位替換為 Button
同樣的方法可以應用於 DateRangePicker
如何建立自訂欄位
建立自訂欄位時的主要挑戰是確保正確處理選擇器傳遞的所有相關 props。
在以下範例中,您可以看到自訂欄位接收的 props 的類型始終具有相同的形狀
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
無頭欄位 props
此介面取決於您正在建立的欄位類型(日期欄位的 UseDateField
、時間欄位的 UseTimeField
、日期範圍欄位的 UseDateRangeFieldProps
等)。
它包含
- 所有欄位通用的基本 props(
value
、onChange
、format
、readOnly
等) - 此類型欄位的驗證 props(
minDate
、maxDate
、shouldDisableDate
等)
DOM 欄位 props
此介面包含選擇器傳遞到其欄位的 props,以便自訂呈現。
這些 props 的形狀旨在由使用來自 @mui/material
的 TextField
的內建欄位接收。當與另一種類型的輸入(或完全沒有輸入)一起使用時,您將必須手動將它們傳遞到相關的元件。
您可以查看 BaseSingleInputFieldProps
和 BaseMultiInputFieldProps
介面,以確切了解這些介面包含的內容。