xy-autocomplete

基于React的联想输入组件


Keywords
react, react-component, xy-autocomplete
License
MIT
Install
npm install xy-autocomplete@0.1.0

Documentation

IE Chrome Firefox Opera Safari
IE 10+ ✔ Chrome 31.0+ ✔ Firefox 31.0+ ✔ Opera 30.0+ ✔ Safari 7.0+ ✔

NPM version node version npm download

xy-autocomplete

xy-autocomplete

联想输入组件。

特性

  • 支持方向键上下导航,并且跳过禁用的。
  • 支持 backfill 盘输入完再回填, 对中文输入很有效。
  • 支持过滤 Option。
  • 设置 delay 节流毫秒
  • 自定义渲染选项
  • 自定义输入框组件

安装

# yarn
yarn add xy-autocomplete

使用例子

import React from "react";
import ReactDOM from "react-dom";
import AutoComplete from "xy-autocomplete";
const mockData = [
    { label: "三全鲜食(北新泾店)", value: "长宁区新渔路144号" },
    { label: "Hot honey 首尔炸鸡(仙霞路)", value: "上海市长宁区淞虹路661号" },
    { label: "新旺角茶餐厅", value: "上海市普陀区真北路988号创邑金沙谷6号楼113" },
];
ReactDOM.render(<AutoComplete dataSource={mockData} />, 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

例子

http://localhost:6006

测试

yarn run test

开源许可

xy-autocomplete is released under the MIT license.