UNPKG

zent

Version:

一套前端设计语言和基于React的实现

42 lines (36 loc) 2.63 kB
--- title: AutoComplete subtitle: 自动完成 path: component/auto-complete group: 信息录入 --- ## AutoComplete 自动完成 输入框自动完成功能。 ### API | 参数 | 说明 | 类型 | 是否必填 | 默认值 | 备选值 | | --------- | ------------- | ------ | ---------- | ----------------- | ---------------- | | value | 选中值 | any | | | | | initialValue | 初始值 | any | | | | | placeholder | 输入框的placeholder | string | | | | | data | 选项数据 | array | | [] | | | onChange | 当value改变时的callback | function (value) {} | | | | | onSearch | 当输入值改变时的callback | function (searchText) {} | | | | | onSelect | 当选中某个选项时的callback | function (value) {} | | | | | filterOption | 根据输入值过滤选项的function | function (searchText, { value, content }) {} | | caselessMatch | | | valueFromOptions | 是否只能选中选项中存在的值 | bool | | `false` | | | className | 可选,自定义输入框容器额外类名 | string | | `''` | | | popupClassName | 可选,自定义popup的类名 | string | | `''` | | | width | 输入框宽度 | `string` \| `number` | | | | | inline | 输入框 inline 展示 | `boolean` | | | | ### data 结构 * 使用方式 1: string array, 此时选项显示内容和选项value相同, 推荐使用 * 使用方式 2: object array, 其中每项的结构是: ``` { value: 'value', // 必填, 作为选项 value; content 未传入时, 同时作为 content 使用; content 未传入, 或者 content 不是 string 类型时, 用于默认的过滤匹配 content: 'content', // 选填, 作为选项显示内容,可以填入 react node, content string 类型时, 会被优先用于过滤匹配 isGroup: false, // 选填, 此项作为分组头部渲染, 显示内容是content的值, 不可被点击选择 isDivider: false, // 选填, 此项作为分割线渲染, 不可被点击选择 } ``` 注意此时的 `value` `content` 是可以不同的。用户输入的值会通过 `onSearch` 返回,用于 `value` `content` 值的匹配,其优先级: string 类型的 `content` > `value`。 当用户选中某个选项时,其 value 会被通过 `onSelect` 返回。无论是选中选项,还是直接用户输入,当输入框中的值变化时,新的 value 都会通过 `onChange` 返回。特别的,当 `valueFromOptions` true 时,输入框失焦时会检查当前value是否在选项值中,如果不在则会重置,触发 `onSelect` `onChange` 传入 null 值。