IE 10+ ✔ | Chrome 31.0+ ✔ | Firefox 31.0+ ✔ | Opera 30.0+ ✔ | Safari 7.0+ ✔ |
xy-autocomplete
联想输入组件。
特性
- 支持方向键上下导航,并且跳过禁用的。
- 支持 backfill 盘输入完再回填, 对中文输入很有效。
- 支持过滤 Option。
- 设置 delay 节流毫秒
- 自定义渲染选项
- 自定义输入框组件
安装
# yarn yarn add xy-autocomplete
使用例子
;;;;ReactDOM.render, container;
API
AutoComplete
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
children | 自定义 Input 搜索框 | React.ReactNode | 无 |
popupClassName | 弹出内容类名 | string | 无 |
stretch | 下拉列表是否宽度与输入框宽度对齐 | boolean | true |
backfill | 是否键盘输入完再回填 | boolean | false |
empyPlaceholder | 内容占位符, 下拉内容为空时提示文本 | string | 无 |
filter | 过滤 option 本, 返回 true 则过滤 | (cfg: OptionConfig, search: string) => boolean | 无 |
delay | 防抖毫秒 | number | 200 |
dataSource | 数据源 | OptionConfig[] / string[] / React.ReactNode | 无 |
customItem | 自定义渲染 | (props: CustomItemProps) => JSX.Element | 无 |
onChange | 改变回调, 搜索内容改变和选中建议选项都会触发 | (value: string) => void | 无 |
onSearch | 搜索回调, 搜索内容改变触发 | (value: string) => void | 无 |
onSelect | 选择回调, 选中建议选项都会触发 | (value: string, cfg: OptionConfig) => void | 无 |
AutoCompleteInput
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
disabled | 是否禁用 | boolean | false |
value | 输入框值 | string | 无 |
defaultValue | 输入框默认值 | string | 无 |
placeholder | 占位符文本 | string | 无 |
autoFocus | 自动焦点 | boolean | 无 |
onFocus | 输入框焦点事件 | (e: React.FocusEvent) => void | 无 |
onBlur | 输入框失去焦点事件 | (e: React.FocusEvent) => void | 无 |
onKeyDown | 键盘事件 | (e: React.KeyboardEvent) => void | 无 |
onChange | 输入框 change 事件 | (value: string, event?: React.ChangeEvent) => void | 无 |
onCompositionStart | 开始输入中文 | (e: React.CompositionEvent) => void | 无 |
onCompositionEnd | 输入中文完毕 | (e: React.CompositionEvent) => void | 无 |
开发
yarn run start
例子
测试
yarn run test
开源许可
xy-autocomplete is released under the MIT license.