Autocomplete
An autocomplete component is a text input enhanced by a panel of suggested options.
useAutocomplete API
Import
import { useAutocomplete } from '@mui/base/useAutocomplete';
// or
import { useAutocomplete } from '@mui/base';
Name | Type | Default | Description |
---|---|---|---|
options* | ReadonlyArray<Value> | Array of options. | |
autoComplete | boolean | false | If |
autoHighlight | boolean | false | If |
autoSelect | boolean | false | If |
blurOnSelect | 'touch' | 'mouse' | true | false | false | Control if the input should be blurred when an option is selected:
|
clearOnBlur | boolean | !props.freeSolo | If |
clearOnEscape | boolean | false | If |
componentName | string | The component name that is using this hook. Used for warnings. | |
defaultValue | AutocompleteValue<Value, Multiple, DisableClearable, FreeSolo> | props.multiple ? [] : null | The default value. Use when the component is not controlled. |
disableClearable | DisableClearable | false | If |
disableCloseOnSelect | boolean | false | If |
disabled | boolean | false | If |
disabledItemsFocusable | boolean | false | If |
disableListWrap | boolean | false | If |
filterOptions | (options: Value[], state: FilterOptionsState<Value>) => Value[] | createFilterOptions() | A function that determines the filtered options to be rendered on search. |
filterSelectedOptions | boolean | false | If |
freeSolo | FreeSolo | false | If |
getOptionDisabled | (option: Value) => boolean | Used to determine the disabled state for a given option. | |
getOptionKey | (option: Value | AutocompleteFreeSoloValueMapping<FreeSolo>) => string | number | Used to determine the key for a given option. This can be useful when the labels of options are not unique (since labels are used as keys by default). | |
getOptionLabel | (option: Value | AutocompleteFreeSoloValueMapping<FreeSolo>) => string | (option) => option.label ?? option | Used to determine the string value for a given option. It's used to fill the input (and the list box options if |
groupBy | (option: Value) => string | If provided, the options will be grouped under the returned string. The groupBy value is also used as the text for group headings when | |
handleHomeEndKeys | boolean | !props.freeSolo | If |
id | string | This prop is used to help implement the accessibility logic. If you don't provide an id it will fall back to a randomly generated one. | |
includeInputInList | boolean | false | If |
inputValue | string | The input value. | |
isOptionEqualToValue | (option: Value, value: Value) => boolean | Used to determine if the option represents the given value. Uses strict equality by default. ⚠️ Both arguments need to be handled, an option can only match with one value. | |
multiple | Multiple | false | If |
onChange | (event: React.SyntheticEvent, value: AutocompleteValue<Value, Multiple, DisableClearable, FreeSolo>, reason: AutocompleteChangeReason, details?: AutocompleteChangeDetails<Value>) => void | Callback fired when the value changes. | |
onClose | (event: React.SyntheticEvent, reason: AutocompleteCloseReason) => void | Callback fired when the popup requests to be closed. Use in controlled mode (see open). | |
onHighlightChange | (event: React.SyntheticEvent, option: Value | null, reason: AutocompleteHighlightChangeReason) => void | Callback fired when the highlight option changes. | |
onInputChange | (event: React.SyntheticEvent, value: string, reason: AutocompleteInputChangeReason) => void | Callback fired when the input value changes. | |
onOpen | (event: React.SyntheticEvent) => void | Callback fired when the popup requests to be opened. Use in controlled mode (see open). | |
open | boolean | If | |
openOnFocus | boolean | false | If |
readOnly | boolean | false | If |
selectOnFocus | boolean | !props.freeSolo | If |
unstable_classNamePrefix | string | 'Mui' | |
unstable_isActiveElementInListbox | (listbox: React.RefObject<HTMLElement>) => boolean | ||
value | AutocompleteValue<Value, Multiple, DisableClearable, FreeSolo> | The value of the autocomplete. |
Name | Type | Default | Description |
---|---|---|---|
anchorEl | null | HTMLElement | An HTML element that is used to set the position of the component. | |
dirty | boolean | If | |
expanded | boolean | If | |
focused | boolean | If | |
focusedTag | number | Index of the focused tag for the component. | |
getClearProps | () => React.HTMLAttributes<HTMLButtonElement> | Resolver for the | |
getInputLabelProps | () => Omit<React.HTMLAttributes<HTMLLabelElement>, 'color'> | Resolver for the input label element's props. | |
getInputProps | () => React.InputHTMLAttributes<HTMLInputElement> & { ref: React.Ref<HTMLInputElement> } | Resolver for the input element's props. | |
getListboxProps | () => React.HTMLAttributes<HTMLUListElement> | Resolver for the listbox component's props. | |
getOptionProps | (renderedOption: UseAutocompleteRenderedOption<Value>) => React.HTMLAttributes<HTMLLIElement> | Resolver for the rendered option element's props. | |
getPopupIndicatorProps | () => React.HTMLAttributes<HTMLButtonElement> | Resolver for the popup icon's props. | |
getRootProps | (externalProps?: any) => React.HTMLAttributes<HTMLDivElement> | Resolver for the root slot's props. | |
getTagProps | AutocompleteGetTagProps | A tag props getter. | |
groupedOptions | Value[] | Array<AutocompleteGroupedOption<Value>> | The options to render. It's either | |
id | string | Id for the Autocomplete. | |
inputValue | string | The input value. | |
popupOpen | boolean | If | |
setAnchorEl | () => void | Setter for the component | |
value | AutocompleteValue<Value, Multiple, DisableClearable, FreeSolo> | The value of the autocomplete. |