自動完成 (Autocomplete)API
React Autocomplete 元件的 API 參考文件。了解此匯出模組的 props、CSS 和其他 API。
範例
匯入
import Autocomplete from '@mui/joy/Autocomplete';
// or
import { Autocomplete } from '@mui/joy';
閱讀這份關於最小化套件大小的指南,以了解差異。
原生元件的 Props 也可用。
名稱 | 類型 | 預設 | 描述 |
---|---|---|---|
options* | 陣列 | - | 選項陣列。 |
aria-describedby | 字串 | - | 識別描述物件的元素(或多個元素)。 |
aria-label | 字串 | - | 定義標記目前元素的字串值。 |
aria-labelledby | 字串 | - | 識別標記目前元素的元素(或多個元素)。 |
autoComplete | 布林值 | false | 若為 |
autoFocus | 布林值 | - | 若為 |
autoHighlight | 布林值 | false | 若為 |
autoSelect | 布林值 | false | 若為 |
blurOnSelect | 'mouse' | 'touch' | 布林值 | false | 控制在選取選項時是否應模糊輸入
|
clearIcon | 節點 | <ClearIcon fontSize="md" /> | 要顯示以取代預設清除圖示的圖示。 |
clearOnBlur | 布林值 | !props.freeSolo | 若為 |
clearOnEscape | 布林值 | false | 若為 |
clearText | 字串 | '清除' | 覆寫清除圖示按鈕的預設文字。 |
closeText | 字串 | '關閉' | 覆寫關閉彈出視窗圖示按鈕的預設文字。 |
color | 'danger' | 'neutral' | 'primary' | 'success' | 'warning' | 'neutral' | 元件的顏色。它支援對此元件有意義的那些主題顏色。 若要了解如何新增自己的顏色,請查看主題元件—擴充顏色。 |
defaultValue | any | props.multiple ? [] : null | 預設值。當元件不受控制時使用。 |
disableClearable | 布林值 | false | 若為 |
disableCloseOnSelect | 布林值 | false | 若為 |
disabled | 布林值 | false | 若為 |
disabledItemsFocusable | 布林值 | false | 若為 |
disableListWrap | 布林值 | false | 若為 |
endDecorator | 節點 | - | 此輸入的尾隨裝飾。 |
error | 布林值 | false | 若為 |
filterOptions | 函式 | createFilterOptions() | 一個函式,用於判斷要在搜尋時呈現的篩選選項。 簽名: function(options: Array<value>, state: object) => Array<value>
|
filterSelectedOptions | 布林值 | false | 若為 |
forcePopupIcon | 'auto' | 布林值 | 'auto' | 強制彈出視窗圖示的顯示可見性。 |
freeSolo | 布林值 | false | 若為 |
getLimitTagsText | 函式 | (more: string | number) => `+${more}` | 當標籤被截斷 ( 簽名: function(more: string | number) => ReactNode
|
getOptionDisabled | 函式 | - | 用於判斷給定選項的停用狀態。 簽名: function(option: Value) => boolean
|
getOptionKey | 函式 | - | 用於判斷給定選項的索引鍵。當選項的標籤不是唯一的時,這會很有用(因為預設會使用標籤作為索引鍵)。 簽名: function(option: Value) => string | number
|
getOptionLabel | 函式 | (option) => option.label ?? option | 用於判斷給定選項的字串值。它用於填寫輸入(以及列表框選項,如果未提供 簽名: function(option: Value) => string |
groupBy | 函式 | - | 如果提供,選項將在傳回的字串下分組。當未提供 簽名: function(options: Value) => string
|
handleHomeEndKeys | 布林值 | !props.freeSolo | 若為 |
id | 字串 | - | 此 prop 用於協助實作可存取性邏輯。如果您未提供 id,它將回復為隨機產生的一個。 |
includeInputInList | 布林值 | false | 若為 |
inputValue | 字串 | - | 輸入值。 |
isOptionEqualToValue | 函式 | - | 用於判斷選項是否代表給定的值。預設使用嚴格相等。⚠️ 需要處理兩個引數,一個選項只能與一個值相符。 簽名: function(option: Value, value: Value) => boolean
|
limitTags | 整數 | -1 | 未聚焦時將可見的標籤最大數量。設定 |
loading | 布林值 | false | 若為 |
loadingText | 節點 | '載入中…' | 在載入狀態時要顯示的文字。 |
multiple | 布林值 | false | 若為 |
name | 字串 | - |
|
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 | 布林值 | false | 若為 |
openText | 字串 | '開啟' | 覆寫開啟彈出視窗圖示按鈕的預設文字。 |
placeholder | 字串 | - | 輸入預留位置 |
popupIcon | 節點 | <ArrowDropDownIcon /> | 要顯示以取代預設彈出視窗圖示的圖示。 |
readOnly | 布林值 | false | 若為 |
renderGroup | 函式 | - | 呈現群組。 簽名: function(params: AutocompleteRenderGroupParams) => ReactNode
|
renderOption | 函式 | - | 呈現選項,預設使用 簽名: function(props: object, option: T, state: object) => ReactNode
|
renderTags | 函式 | - | 呈現選取的值。 簽名: function(value: Array<T>, getTagProps: function, ownerState: object) => ReactNode
|
required | 布林值 | - | 若為 |
selectOnFocus | 布林值 | !props.freeSolo | 若為 |
size | 'sm' | 'md' | 'lg' | 字串 | 'md' | 元件的大小。 若要了解如何將自訂大小新增至元件,請查看主題元件—擴充大小。 |
slotProps | { clearIndicator?: func | object, endDecorator?: func | object, input?: func | object, limitTag?: func | object, listbox?: func | object, loading?: func | object, noOptions?: func | object, option?: func | object, popupIndicator?: func | object, root?: func | object, startDecorator?: func | object, wrapper?: func | object } | {} | 用於每個插槽內部的 props。 |
slots | { clearIndicator?: elementType, endDecorator?: elementType, input?: elementType, limitTag?: elementType, listbox?: elementType, loading?: elementType, noOptions?: elementType, option?: elementType, popupIndicator?: elementType, root?: elementType, startDecorator?: elementType, wrapper?: elementType } | {} | 用於每個插槽內部的元件。 請參閱下方的插槽 API 以取得更多詳細資訊。 |
startDecorator | 節點 | - | 此輸入的前導裝飾。 |
sx | Array<func | object | bool> | func | object | - | 系統 prop,允許定義系統覆寫以及其他 CSS 樣式。 請參閱 `sx` 頁面 以取得更多詳細資訊。 |
type | 字串 | - |
|
value | any | - | 自動完成的值。 |
variant | 'outlined' | 'plain' | 'soft' | 'solid' | 'outlined' | 要使用的全域變體。 若要了解如何新增自己的變體,請查看主題元件—擴充變體。 |
ref
會轉發到根元素。主題預設 Props
您可以使用 JoyAutocomplete
透過主題變更此元件的預設 props。
若要了解如何自訂插槽,請查看覆寫元件結構指南。
插槽名稱 | 類別名稱 | 預設元件 | 描述 |
---|---|---|---|
root | .MuiAutocomplete-root | 'div' | 呈現根的元件。 |
wrapper | .MuiAutocomplete-wrapper | 'div' | 呈現包裝器的元件。 |
input | .MuiAutocomplete-input | 'input' | 呈現輸入的元件。 |
startDecorator | .MuiAutocomplete-startDecorator | 'div' | 呈現開始裝飾器的元件。 |
endDecorator | .MuiAutocomplete-endDecorator | 'div' | 呈現結束裝飾器的元件。 |
clearIndicator | .MuiAutocomplete-clearIndicator | 'button' | 呈現清除指示器的元件。 |
popupIndicator | .MuiAutocomplete-popupIndicator | 'button' | 呈現彈出視窗指示器的元件。 |
listbox | .MuiAutocomplete-listbox | 'ul' | 呈現列表框的元件。 |
option | .MuiAutocomplete-option | 'li' | 呈現選項的元件。 |
loading | .MuiAutocomplete-loading | 'li' | 呈現載入中的元件。 |
noOptions | .MuiAutocomplete-noOptions | 'li' | 呈現無選項的元件。 |
limitTag | .MuiAutocomplete-limitTag | 'div' | 呈現限制標籤的元件。 |
這些類別名稱對於使用 CSS 設定樣式很有用。當觸發特定狀態時,它們會套用至元件的插槽。
類別名稱 | 規則名稱 | 描述 |
---|---|---|
.Mui-disabled | 若 disabled={true} ,則套用至根元素的類別名稱。 | |
.Mui-error | 若 error={true} ,則套用至根元素的狀態類別。 | |
.Mui-focused | 若元件已聚焦,則套用至根元素的類別名稱。 | |
.MuiAutocomplete-colorContext | colorContext | 當觸發色彩反轉時,套用至根元素的類別名稱。 |
.MuiAutocomplete-colorDanger | colorDanger | 若 color="danger" ,則套用至根元素的類別名稱。 |
.MuiAutocomplete-colorNeutral | colorNeutral | 若 color="neutral" ,則套用至根元素的類別名稱。 |
.MuiAutocomplete-colorPrimary | colorPrimary | 若 color="primary" ,則套用至根元素的類別名稱。 |
.MuiAutocomplete-colorSuccess | colorSuccess | 若 color="success" ,則套用至根元素的類別名稱。 |
.MuiAutocomplete-colorWarning | colorWarning | 若 color="warning" ,則套用至根元素的類別名稱。 |
.MuiAutocomplete-formControl | formControl | 若元件是 FormControl 的後代,則套用至根元素的類別名稱。 |
.MuiAutocomplete-hasClearIcon | hasClearIcon | 當呈現清除圖示時套用的類別名稱。 |
.MuiAutocomplete-hasPopupIcon | hasPopupIcon | 當呈現彈出視窗圖示時套用的類別名稱。 |
.MuiAutocomplete-multiple | multiple | 若 multiple={true} ,則套用至包裝器元素的類別名稱。 |
.MuiAutocomplete-popupIndicatorOpen | popupIndicatorOpen | 若彈出視窗開啟,則套用至彈出視窗指示器的類別名稱。 |
.MuiAutocomplete-sizeLg | sizeLg | 若 size="lg" ,則套用至根元素的類別名稱。 |
.MuiAutocomplete-sizeMd | sizeMd | 若 size="md" ,則套用至根元素的類別名稱。 |
.MuiAutocomplete-sizeSm | sizeSm | 若 size="sm" ,則套用至根元素的類別名稱。 |
.MuiAutocomplete-variantOutlined | variantOutlined | 若 variant="outlined" ,則套用至根元素的類別名稱。 |
.MuiAutocomplete-variantPlain | variantPlain | 若 variant="plain" ,則套用至根元素的類別名稱。 |
.MuiAutocomplete-variantSoft | variantSoft | 若 variant="soft" ,則套用至根元素的類別名稱。 |
.MuiAutocomplete-variantSolid | variantSolid | 若 variant="solid" ,則套用至根元素的類別名稱。 |
您可以使用下列其中一種自訂選項覆寫元件的樣式
- 使用全域類別名稱。
- 在自訂主題中使用規則名稱作為元件
styleOverrides
屬性的一部分。
原始碼
如果您在此頁面中找不到資訊,請考慮查看元件的實作以取得更多詳細資訊。