Autocomplete
自动完成组件是一个文本输入框,通过建议选项面板进行增强。
useAutocomplete API
导入
import { useAutocomplete } from '@mui/base/useAutocomplete';
// or
import { useAutocomplete } from '@mui/base';
通过阅读关于最小化捆绑包大小的指南,了解差异。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
options* | ReadonlyArray<Value> | - | 选项数组。 |
autoComplete | boolean | false | 如果 |
autoHighlight | boolean | false | 如果 |
autoSelect | boolean | false | 如果 |
blurOnSelect | 'touch' | 'mouse' | true | false | false | 控制在选择选项时是否应模糊输入框
|
clearOnBlur | boolean | !props.freeSolo | 如果 |
clearOnEscape | boolean | false | 如果 |
componentName | string | - | 正在使用此钩子的组件名称。用于警告。 |
defaultValue | AutocompleteValue<Value, Multiple, DisableClearable, FreeSolo> | props.multiple ? [] : null | 默认值。当组件不受控制时使用。 |
disableClearable | DisableClearable | false | 如果 |
disableCloseOnSelect | boolean | false | 如果 |
disabled | boolean | false | 如果 |
disabledItemsFocusable | boolean | false | 如果 |
disableListWrap | boolean | false | 如果 |
filterOptions | (options: Value[], state: FilterOptionsState<Value>) => Value[] | createFilterOptions() | 一个函数,用于确定要在搜索时渲染的过滤选项。 |
filterSelectedOptions | boolean | false | 如果 |
freeSolo | FreeSolo | false | 如果 |
getOptionDisabled | (option: Value) => boolean | - | 用于确定给定选项的禁用状态。 |
getOptionKey | (option: Value | AutocompleteFreeSoloValueMapping<FreeSolo>) => string | number | - | 用于确定给定选项的键。当选项的标签不唯一时(因为默认情况下标签用作键),这可能很有用。 |
getOptionLabel | (option: Value | AutocompleteFreeSoloValueMapping<FreeSolo>) => string | (option) => option.label ?? option | 用于确定给定选项的字符串值。它用于填充输入框(如果未提供 |
groupBy | (option: Value) => string | - | 如果提供,选项将分组在返回的字符串下。当未提供 |
handleHomeEndKeys | boolean | !props.freeSolo | 如果 |
id | string | - | 此属性用于帮助实现可访问性逻辑。如果您不提供 id,它将回退到随机生成的一个。 |
includeInputInList | boolean | false | 如果 |
inputValue | string | - | 输入值。 |
isOptionEqualToValue | (option: Value, value: Value) => boolean | - | 用于确定选项是否表示给定的值。默认情况下使用严格相等性。⚠️ 需要处理两个参数,一个选项只能与一个值匹配。 |
multiple | Multiple | false | 如果 |
onChange | (event: React.SyntheticEvent, value: AutocompleteValue<Value, Multiple, DisableClearable, FreeSolo>, reason: AutocompleteChangeReason, details?: AutocompleteChangeDetails<Value>) => void | - | 当值更改时触发的回调。 |
onClose | (event: React.SyntheticEvent, reason: AutocompleteCloseReason) => void | - | 当弹出窗口请求关闭时触发的回调。在受控模式下使用(参见 open)。 |
onHighlightChange | (event: React.SyntheticEvent, option: Value | null, reason: AutocompleteHighlightChangeReason) => void | - | 当高亮显示的选项更改时触发的回调。 |
onInputChange | (event: React.SyntheticEvent, value: string, reason: AutocompleteInputChangeReason) => void | - | 当输入值更改时触发的回调。 |
onOpen | (event: React.SyntheticEvent) => void | - | 当弹出窗口请求打开时触发的回调。在受控模式下使用(参见 open)。 |
open | boolean | - | 如果 |
openOnFocus | boolean | false | 如果 |
readOnly | boolean | false | 如果 |
selectOnFocus | boolean | !props.freeSolo | 如果 |
unstable_classNamePrefix | string | 'Mui' | |
unstable_isActiveElementInListbox | (listbox: React.RefObject<HTMLElement | null>) => boolean | - | |
value | AutocompleteValue<Value, Multiple, DisableClearable, FreeSolo> | - | autocomplete 的值。 |
名称 | 类型 | 描述 |
---|---|---|
anchorEl | null | HTMLElement | 用于设置组件位置的 HTML 元素。 |
dirty | boolean | 如果 |
expanded | boolean | 如果 |
focused | boolean | 如果 |
focusedTag | number | 组件的聚焦标签的索引。 |
getClearProps | () => React.HTMLAttributes<HTMLButtonElement> | 清除按钮元素属性的解析器。 |
getInputLabelProps | () => Omit<React.HTMLAttributes<HTMLLabelElement>, 'color'> | 输入标签元素属性的解析器。 |
getInputProps | () => React.InputHTMLAttributes<HTMLInputElement> & { ref: React.Ref<HTMLInputElement> } | 输入元素属性的解析器。 |
getListboxProps | () => React.HTMLAttributes<HTMLUListElement> | 列表框组件属性的解析器。 |
getOptionProps | (renderedOption: UseAutocompleteRenderedOption<Value>) => React.HTMLAttributes<HTMLLIElement> & { key: any } | 渲染选项元素属性的解析器。 |
getPopupIndicatorProps | () => React.HTMLAttributes<HTMLButtonElement> | 弹出窗口图标属性的解析器。 |
getRootProps | (externalProps?: any) => React.HTMLAttributes<HTMLDivElement> | 根槽属性的解析器。 |
getTagProps | AutocompleteGetTagProps | 标签属性 getter。 |
groupedOptions | Value[] | Array<AutocompleteGroupedOption<Value>> | 要渲染的选项。如果提供了 groupBy 属性,则为 |
id | string | Autocomplete 的 ID。 |
inputValue | string | 输入值。 |
popupOpen | boolean | 如果 |
setAnchorEl | () => void | 组件 |
value | AutocompleteValue<Value, Multiple, DisableClearable, FreeSolo> | autocomplete 的值。 |