自动完成API
React 自动完成组件的 API 参考文档。了解此导出模块的属性、CSS 和其他 API。
演示
导入
import Autocomplete from '@mui/joy/Autocomplete';
// or
import { Autocomplete } from '@mui/joy';
通过阅读关于最小化 bundle 大小的指南,了解它们之间的区别。
也可使用原生组件的属性。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
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 | 任意类型 | 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 | 字符串 | - | 此属性用于帮助实现可访问性逻辑。如果您不提供 id,它将回退到随机生成的 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 } | {} | 用于每个内部插槽的属性。 |
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 } | {} | 用于每个内部插槽的组件。 有关更多详细信息,请参阅下面的 Slots API。 |
startDecorator | 节点 | - | 此输入的前导装饰。 |
sx | Array<func | object | bool> | func | object | - | 允许定义系统覆盖以及其他 CSS 样式的系统属性。 有关更多详细信息,请参阅 |
type | 字符串 | - |
|
value | 任意类型 | - | 自动完成的值。 |
variant | 'outlined' | 'plain' | 'soft' | 'solid' | 'outlined' | 要使用的全局变体。 要了解如何添加自己的变体,请查看 主题组件—扩展变体。 |
ref
被转发到根元素。主题默认属性
您可以使用 JoyAutocomplete
通过主题更改此组件的默认属性。
要了解如何自定义插槽,请查看 覆盖组件结构 指南。
插槽名称 | 类名 | 默认组件 | 描述 |
---|---|---|---|
root | .MuiAutocomplete-root | 'div' | 渲染根的组件。 |
wrapper | .MuiAutocomplete-wrapper | 'div' | 渲染 wrapper 的组件。 |
input | .MuiAutocomplete-input | 'input' | 渲染 input 的组件。 |
startDecorator | .MuiAutocomplete-startDecorator | 'div' | 渲染 start decorator 的组件。 |
endDecorator | .MuiAutocomplete-endDecorator | 'div' | 渲染 end decorator 的组件。 |
clearIndicator | .MuiAutocomplete-clearIndicator | 'button' | 渲染 clear indicator 的组件。 |
popupIndicator | .MuiAutocomplete-popupIndicator | 'button' | 渲染 popup indicator 的组件。 |
listbox | .MuiAutocomplete-listbox | 'ul' | 渲染 listbox 的组件。 |
option | .MuiAutocomplete-option | 'li' | 渲染 option 的组件。 |
loading | .MuiAutocomplete-loading | 'li' | 渲染 loading 的组件。 |
noOptions | .MuiAutocomplete-noOptions | 'li' | 渲染 no-options 的组件。 |
limitTag | .MuiAutocomplete-limitTag | 'div' | 渲染 limit tag 的组件。 |
这些类名对于使用 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} ,则应用于 wrapper 元素的类名。 |
.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
属性的一部分。
源代码
如果您在此页面中没有找到信息,请考虑查看组件的实现以获取更多详细信息。