自动完成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属性的一部分。
源代码
如果您在此页面中找不到信息,请考虑查看组件的实现以获取更多详细信息。