自動完成API
React 自動完成組件的 API 參考文件。了解此匯出模組的屬性、CSS 和其他 API。
示範
導入
import Autocomplete from '@mui/material/Autocomplete';
// or
import { Autocomplete } from '@mui/material';
閱讀這份關於最小化 bundle 大小的指南,了解差異。
原生組件的屬性也可用。
名稱 | 類型 | 預設值 | 描述 |
---|---|---|---|
options* | 陣列 | - | 將在自動完成中顯示的選項列表。 |
renderInput* | 函數 | - | 渲染輸入。 簽名: function(params: object) => ReactNode |
autoComplete | 布林值 | 否 | 如果為 |
autoHighlight | 布林值 | 否 | 如果為 |
autoSelect | 布林值 | 否 | 如果為 |
blurOnSelect | '滑鼠' | '觸控' | 布林值 | 否 | 控制在選取選項時是否應模糊輸入
|
ChipProps | 物件 | - | 應用於 |
classes | 物件 | - | 覆寫或擴展應用於組件的樣式。 詳情請參閱下方的 CSS 類別 API。 |
clearIcon | 節點 | <ClearIcon fontSize="small" /> | 顯示以取代預設清除圖示的圖示。 |
clearOnBlur | 布林值 | !props.freeSolo | 如果為 |
clearOnEscape | 布林值 | 否 | 如果為 |
clearText | 字串 | '清除' | 覆寫 *清除* 圖示按鈕的預設文字。 |
closeText | 字串 | '關閉' | 覆寫 *關閉彈出視窗* 圖示按鈕的預設文字。 |
componentsProps | { clearIndicator?: object, paper?: object, popper?: object, popupIndicator?: object } | - | 用於內部每個插槽的屬性。 |
defaultValue | any | props.multiple ? [] : null | 預設值。當組件不受控制時使用。 |
disableClearable | 布林值 | 否 | 如果為 |
disableCloseOnSelect | 布林值 | 否 | 如果為 |
disabled | 布林值 | 否 | 如果為 |
disabledItemsFocusable | 布林值 | 否 | 如果為 |
disableListWrap | 布林值 | 否 | 如果為 |
disablePortal | 布林值 | 否 | 如果為 |
filterOptions | 函數 | createFilterOptions() | 一個函數,用於確定在搜尋時要渲染的篩選選項。 簽名: function(options: Array<value>, state: object) => Array<value>
|
filterSelectedOptions | 布林值 | 否 | 如果為 |
forcePopupIcon | 'auto' | 布林值 | 'auto' | 強制顯示彈出圖示的可見性。 |
freeSolo | 布林值 | 否 | 如果為 |
fullWidth | 布林值 | 否 | 如果為 |
getLimitTagsText | 函數 | (more) => `+${more}` | 當標籤被截斷時要顯示的標籤( 簽名: function(more: number) => ReactNode
|
getOptionDisabled | 函數 | - | 用於確定給定選項的停用狀態。 簽名: function(option: Value) => boolean
|
getOptionKey | 函數 | - | 用於確定給定選項的鍵。當選項的標籤不唯一時,這會很有用(因為預設情況下標籤會用作鍵)。 簽名: function(option: Value) => string | number
|
getOptionLabel | 函數 | (option) => option.label ?? option | 用於確定給定選項的字串值。它用於填充輸入(以及列表框選項,如果未提供 簽名: function(option: Value) => string |
groupBy | 函數 | - | 如果提供,選項將在傳回的字串下分組。當未提供 簽名: function(option: Value) => string
|
handleHomeEndKeys | 布林值 | !props.freeSolo | 如果為 |
id | 字串 | - | 此屬性用於幫助實作可訪問性邏輯。如果您未提供 id,它將退回到隨機生成的 id。 |
includeInputInList | 布林值 | 否 | 如果為 |
inputValue | 字串 | - | 輸入值。 |
isOptionEqualToValue | 函數 | - | 用於確定選項是否代表給定的值。預設使用嚴格相等性。⚠️ 需要處理兩個引數,一個選項只能與一個值匹配。 簽名: function(option: Value, value: Value) => boolean
|
limitTags | 整數 | -1 | 當未聚焦時將可見的標籤最大數量。設定 `-1` 以停用限制。 |
ListboxComponent | 元素類型 | 'ul' | 用於渲染列表框的組件。 |
ListboxProps | 物件 | - | 應用於 Listbox 元素的屬性。 |
loading | 布林值 | 否 | 如果為 |
loadingText | 節點 | '載入中…' | 在載入中狀態時要顯示的文字。 |
multiple | 布林值 | 否 | 如果為 |
noOptionsText | 節點 | '無選項' | 當沒有選項時要顯示的文字。 |
onChange | 函數 | - | 當值變更時觸發的回呼。 簽名: function(event: React.SyntheticEvent, value: Value | Array<value>, reason: string, details?: string) => void
|
onClose | 函數 | - | 當彈出視窗請求關閉時觸發的回呼。在受控模式中使用(請參閱 open)。 簽名: function(event: React.SyntheticEvent, reason: string) => void
|
onHighlightChange | 函數 | - | 當高亮選項變更時觸發的回呼。 簽名: function(event: React.SyntheticEvent, option: Value, reason: string) => void
|
onInputChange | 函數 | - | 當輸入值變更時觸發的回呼。 簽名: function(event: React.SyntheticEvent, value: string, reason: string) => void
|
onOpen | 函數 | - | 當彈出視窗請求開啟時觸發的回呼。在受控模式中使用(請參閱 open)。 簽名: function(event: React.SyntheticEvent) => void
|
open | 布林值 | - | 如果為 |
openOnFocus | 布林值 | 否 | 如果為 |
openText | 字串 | '開啟' | 覆寫 *開啟彈出視窗* 圖示按鈕的預設文字。 |
PaperComponent | 元素類型 | 紙張 | 用於渲染彈出視窗主體的組件。 |
PopperComponent | 元素類型 | 浮動框 | 用於定位彈出視窗的組件。 |
popupIcon | 節點 | <ArrowDropDownIcon /> | 顯示以取代預設彈出圖示的圖示。 |
readOnly | 布林值 | 否 | 如果為 |
renderGroup | 函數 | - | 渲染群組。 簽名: function(params: AutocompleteRenderGroupParams) => ReactNode
|
renderOption | 函數 | - | 渲染選項,預設使用 簽名: function(props: object, option: Value, state: object, ownerState: object) => ReactNode
|
renderTags | 函數 | - | 渲染選定的值。 簽名: function(value: Array<value>, getTagProps: function, ownerState: object) => ReactNode
|
selectOnFocus | 布林值 | !props.freeSolo | 如果為 |
size | 'small' | 'medium' | 字串 | 'medium' | 組件的尺寸。 |
slotProps | { chip?: func | object, clearIndicator?: func | object, listbox?: func | object, paper?: func | object, popper?: func | object, popupIndicator?: func | object } | {} | 用於內部每個插槽的屬性。 |
slots | { listbox?: elementType, paper?: elementType, popper?: elementType } | {} | 用於內部每個插槽的組件。 |
sx | Array<func | object | bool> | func | object | - | 允許定義系統覆寫以及額外 CSS 樣式的系統屬性。 詳情請參閱 `sx` 頁面。 |
value | any | - | 自動完成的值。 |
主題預設屬性
您可以使用 MuiAutocomplete
來變更此組件的預設屬性 透過主題。
插槽名稱 | 類別名稱 | 預設組件 | 描述 |
---|---|---|---|
listbox | .MuiAutocomplete-listbox | 'ul' | 用於渲染列表框的組件。 |
paper | .MuiAutocomplete-paper | 紙張 | 用於渲染彈出視窗主體的組件。 |
popper | .MuiAutocomplete-popper | 浮動框 | 用於定位彈出視窗的組件。 |
這些類別名稱對於使用 CSS 設定樣式很有用。它們在觸發特定狀態時應用於組件的插槽。
類別名稱 | 規則名稱 | 描述 |
---|---|---|
.Mui-expanded | 如果顯示列表框,則應用於根元素的狀態類別。 | |
.Mui-focused | 如果聚焦,則應用於根元素的狀態類別。 | |
.Mui-focusVisible | 如果選項元素是鍵盤聚焦的,則應用於選項元素的樣式。 | |
.MuiAutocomplete-clearIndicator | clearIndicator | 應用於清除指示器的樣式。 |
.MuiAutocomplete-endAdornment | endAdornment | 應用於 endAdornment 元素的樣式。 |
.MuiAutocomplete-fullWidth | fullWidth | 如果 fullWidth={true} ,則應用於根元素的樣式。 |
.MuiAutocomplete-groupLabel | groupLabel | 應用於群組標籤元素的樣式。 |
.MuiAutocomplete-groupUl | groupUl | 應用於群組 ul 元素的樣式。 |
.MuiAutocomplete-hasClearIcon | hasClearIcon | 在渲染清除圖示時應用的樣式。 |
.MuiAutocomplete-hasPopupIcon | hasPopupIcon | 在渲染彈出圖示時應用的樣式。 |
.MuiAutocomplete-input | input | 應用於輸入元素的樣式。 |
.MuiAutocomplete-inputFocused | inputFocused | 如果輸入已聚焦,則應用於輸入元素的樣式。 |
.MuiAutocomplete-inputRoot | inputRoot | 應用於 Input 元素的樣式。 |
.MuiAutocomplete-loading | loading | 應用於載入中包裝器的樣式。 |
.MuiAutocomplete-noOptions | noOptions | 應用於無選項包裝器的樣式。 |
.MuiAutocomplete-option | option | 應用於選項元素的樣式。 |
.MuiAutocomplete-popperDisablePortal | popperDisablePortal | 如果 disablePortal={true} ,則應用於 popper 元素的樣式。 |
.MuiAutocomplete-popupIndicator | popupIndicator | 應用於彈出指示器的樣式。 |
.MuiAutocomplete-popupIndicatorOpen | popupIndicatorOpen | 如果彈出視窗已開啟,則應用於彈出指示器的樣式。 |
.MuiAutocomplete-root | root | 應用於根元素的樣式。 |
.MuiAutocomplete-tag | tag | 應用於標籤元素的樣式,例如晶片。 |
.MuiAutocomplete-tagSizeMedium | tagSizeMedium | 如果 size="medium" ,則應用於標籤元素的樣式,例如晶片。 |
.MuiAutocomplete-tagSizeSmall | tagSizeSmall | 如果 size="small" ,則應用於標籤元素的樣式,例如晶片。 |
您可以使用以下自訂選項之一來覆寫組件的樣式
- 使用 全域類別名稱。
- 在自訂主題中使用規則名稱作為組件 `styleOverrides` 屬性 的一部分。
原始碼
如果您在此頁面中找不到資訊,請考慮查看 組件的實作 以取得更多詳細資訊。