JGuang

自动补全

AutoComplete · Arco Design

交互预览
npm install @arco-design/web-react@2.66.18

自动补全 AutoComplete

输入框或自定义输入控件的自动补全功能。

安装

npm install @arco-design/web-react@2.66.18

在入口引入 @arco-design/web-react/dist/css/arco.css,用 ConfigProvider 设置语言。React 19 项目还需在入口最先引入 @arco-design/web-react/es/_util/react-19-adapter,否则 Message、Modal 等命令式 API 无法渲染。

示例

  • 基础用法:根据当前输入展示输入建议(下拉选择)。
  • 自定义选项:可以传入 AutoComplete.Option 作为组件的 children,而非使用 data。
  • 自定义输入组件:支持自定义输入组件。
  • 区分大小写:使用 strict=true 来指明在匹配时严格区分大小写。
  • 复杂用法:这个示例展示了:1. 添加Tooltip, 2. 自定义显示, 3. 对值进行操控。
  • 查询模式 确定类目:根据查询结果补全输入内容(确定类目)。
  • 查询模式 不确定类目:根据查询结果补全输入内容(不确定类目)。
  • 自定义过滤规则:如果你依赖用户输入来动态更新选项,请通过 filterOption 属性来覆盖默认的选项过滤规则,或者将其设为 false 来关闭默认过滤规则。

示例来自 Arco Design 官方仓库(MIT),固定在 npm 2.66.18 对应的提交;部分示例使用在线图片或上传地址,预览中网络请求被禁用。

API

AutoComplete

参数名描述类型默认值版本
allowClear是否允许一键清除boolean--
defaultActiveFirstOption是否默认高亮第一个选项booleantrue-
disabled是否禁用boolean--
error是否是错误状态。(废弃,下个大版本移除,使用 status='error' 替代)boolean--
loading是否处于加载状态。boolean-2.10.0
strictstrict: true 的时候大小写敏感boolean--
defaultValue自动补全组件的默认值string--
placeholder输入框提示string--
value自动补全组件的值(受控模式)string--
status状态'error' | 'warning'-2.45.0
children自定义输入框/数据源ReactNode--
className节点类名string | string[]--
data自动完成的数据源(string | { value: string; name: string; [key: string]: any } | ReactNode)[]--
inputProps传递 Input 组件的属性。Partial<InputProps>-2.10.0
style节点样式CSSProperties--
triggerProps可以接受所有 Trigger 的 PropsPartial<TriggerProps>--
virtualListProps传递虚拟滚动属性。AvailableVirtualListProps-2.2.0
dropdownRender自定义弹出内容。(menu: ReactNode) => ReactNode--
filterOption是否根据输入的值筛选数据。如果传入函数的话,接收 inputValue 和 option 两个参数,当option符合筛选条件时,返回 true,反之返回 false。boolean | ((inputValue: string, option: ReactElement) => boolean)true-
getPopupContainer弹出框挂载的父节点。(node: HTMLElement) => Element--
onBlur失去焦点的回调(event) => void--
onChange输入或者点击补全项,value 改变时的回调(仅在点击补全项时存在第二个参数)(value: string, option?: OptionInfo) => void--
onFocus聚焦时的回调(event) => void--
onPressEnter按下回车键的回调(event, activeOption?: OptionInfo) => void-activeOption in 2.25.1
onSearch搜索补全时的回调(value: string) => void--
onSelect点击补全项时的回调(value: string, option: OptionInfo) => void--
triggerElement自定义触发元素ReactElement | (({ value }) => ReactElement)<Input />() => ReactElement in 2.31.0

OptionInfo

export interface OptionInfo extends PropsWithChildren<OptionProps> {
  child?: ReactElement;
  _valid: boolean;
  _index: number;
  _origin: "children" | "options" | "userCreatedOptions" | "userCreatingOption";
}

AvailableVirtualListProps

export type AvailableVirtualListProps = Pick<
  VirtualListProps<any>,
  | "height"
  | "itemHeight"
  | "threshold"
  | "isStaticItemHeight"
  | "scrollOptions"
  | "onScroll"
  | "wrapperChild"
>;

AutoComplete.Option

同 Select.Option, 参考 Select 文档 。

AutoComplete.OptGroup

同 Select.OptGroup, 参考 Select 文档 。