自动完成API
React Autocomplete 组件的 API 参考文档。了解此导出模块的 props、CSS 和其他 API。
演示
导入
import Autocomplete from '@mui/material/Autocomplete';
// or
import { Autocomplete } from '@mui/material';
通过阅读关于最小化 bundle size 的指南,了解它们之间的区别。
原生组件的 Props 也可用。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
options* | array | - | 将在 Autocomplete 中显示的选项列表。 |
renderInput* | func | - | 渲染输入框。 签名: function(params: object) => ReactNode |
autoComplete | bool | false | 如果 |
autoHighlight | bool | false | 如果 |
autoSelect | bool | false | 如果 |
blurOnSelect | 'mouse' | 'touch' | bool | false | 控制在选择选项时是否应模糊输入框
|
ChipProps | object | - | 应用于 |
classes | object | - | 覆盖或扩展应用于组件的样式。 有关更多详细信息,请参阅下面的CSS 类 API。 |
clearIcon | node | <ClearIcon fontSize="small" /> | 用于替换默认清除图标的图标。 |
clearOnBlur | bool | !props.freeSolo | 如果 |
clearOnEscape | bool | false | 如果 |
clearText | string | 'Clear' | 覆盖清除图标按钮的默认文本。 |
closeText | string | 'Close' | 覆盖关闭弹出窗口图标按钮的默认文本。 |
componentsProps | { clearIndicator?: object, paper?: object, popper?: object, popupIndicator?: object } | - | 用于内部每个插槽的 props。 |
defaultValue | any | props.multiple ? [] : null | 默认值。当组件不受控制时使用。 |
disableClearable | bool | false | 如果 |
disableCloseOnSelect | bool | false | 如果 |
disabled | bool | false | 如果 |
disabledItemsFocusable | bool | false | 如果 |
disableListWrap | bool | false | 如果 |
disablePortal | bool | false | 如果 |
filterOptions | func | createFilterOptions() | 确定要在搜索时渲染的已过滤选项的函数。 签名: function(options: Array
|
filterSelectedOptions | bool | false | 如果 |
forcePopupIcon | 'auto' | bool | 'auto' | 强制弹出图标的可见性显示。 |
freeSolo | bool | false | 如果 |
fullWidth | bool | false | 如果 |
getLimitTagsText | func | (more) => `+${more}` | 当标签被截断 ( 签名: function(more: number) => ReactNode
|
getOptionDisabled | func | - | 用于确定给定选项的禁用状态。 签名: function(option: Value) => boolean
|
getOptionKey | func | - | 用于确定给定选项的键。当选项的标签不是唯一的(因为默认情况下标签用作键)时,这可能很有用。 签名: function(option: Value) => string | number
|
getOptionLabel | func | (option) => option.label ?? option | 用于确定给定选项的字符串值。它用于填充输入框(以及列表框选项,如果未提供 签名: function(option: Value) => string |
groupBy | func | - | 如果提供,选项将分组在返回的字符串下。当未提供 签名: function(option: Value) => string
|
handleHomeEndKeys | bool | !props.freeSolo | 如果 |
id | string | - | 此 prop 用于帮助实现可访问性逻辑。如果您不提供 id,它将回退到随机生成的 id。 |
includeInputInList | bool | false | 如果 |
inputValue | string | - | 输入值。 |
isOptionEqualToValue | func | - | 用于确定选项是否表示给定的值。默认情况下使用严格相等。⚠️ 需要处理两个参数,一个选项只能与一个值匹配。 签名: function(option: Value, value: Value) => boolean
|
limitTags | integer | -1 | 未聚焦时将可见的最大标签数。设置 |
ListboxComponent | elementType | 'ul' | 用于渲染列表框的组件。 |
ListboxProps | object | - | 应用于 Listbox 元素的 Props。 |
loading | bool | false | 如果 |
loadingText | node | 'Loading…' | 在加载状态下显示的文本。 |
multiple | bool | false | 如果 |
noOptionsText | node | 'No options' | 在没有选项时显示的文本。 |
onChange | func | - | 当值更改时触发的回调。 签名: function(event: React.SyntheticEvent, value: Value | Array
|
onClose | func | - | 当弹出窗口请求关闭时触发的回调。在受控模式下使用(请参阅 open)。 签名: function(event: React.SyntheticEvent, reason: string) => void
|
onHighlightChange | func | - | 当高亮显示选项更改时触发的回调。 签名: function(event: React.SyntheticEvent, option: Value, reason: string) => void
|
onInputChange | func | - | 当输入值更改时触发的回调。 签名: function(event: React.SyntheticEvent, value: string, reason: string) => void
|
onOpen | func | - | 当弹出窗口请求打开时触发的回调。在受控模式下使用(请参阅 open)。 签名: function(event: React.SyntheticEvent) => void
|
open | bool | - | 如果 |
openOnFocus | bool | false | 如果 |
openText | string | 'Open' | 覆盖打开弹出窗口图标按钮的默认文本。 |
PaperComponent | elementType | 纸张 | 用于渲染弹出窗口主体的组件。 |
PopperComponent | elementType | Popper | 用于定位弹出窗口的组件。 |
popupIcon | node | <ArrowDropDownIcon /> | 用于替换默认弹出图标的图标。 |
readOnly | bool | false | 如果 |
renderGroup | func | - | 渲染组。 签名: function(params: AutocompleteRenderGroupParams) => ReactNode
|
renderOption | func | - | 渲染选项,默认使用 签名: function(props: object, option: Value, state: object, ownerState: object) => ReactNode
|
renderTags | func | - | 渲染选定的值。 签名: function(value: Array
|
selectOnFocus | bool | !props.freeSolo | 如果 |
size | 'small' | 'medium' | string | 'medium' | 组件的尺寸。 |
slotProps | { chip?: func | object, clearIndicator?: func | object, listbox?: func | object, paper?: func | object, popper?: func | object, popupIndicator?: func | object } | {} | 用于内部每个插槽的 props。 |
slots | { listbox?: elementType, paper?: elementType, popper?: elementType } | {} | 用于内部每个插槽的组件。 |
sx | Array<func | object | bool> | func | object | - | 允许定义系统覆盖以及其他 CSS 样式的系统 prop。 有关更多详细信息,请参阅`sx` 页面。 |
value | any | - | autocomplete 的值。 |
主题默认 Props
您可以使用 MuiAutocomplete
通过主题更改此组件的默认 props。
插槽名称 | 类名 | 默认组件 | 描述 |
---|---|---|---|
listbox | .MuiAutocomplete-listbox | 'ul' | 用于渲染列表框的组件。 |
paper | .MuiAutocomplete-paper | 纸张 | 用于渲染弹出窗口主体的组件。 |
popper | .MuiAutocomplete-popper | 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
属性的一部分。
源代码
如果您在此页面中找不到信息,请考虑查看组件的实现以获取更多详细信息。