bee-select

2.0.33 • Public • Published

bee-select

npm version Build Status Coverage Status dependencies Status NPM downloads Average time to resolve an issue Percentage of issues still open

下拉弹出菜单,代替原生的选择器。当然Select扩展了其他功能:多选,级联,搜索过滤单选和搜索过滤多选与自动填充选择。

使用

使用单独的bee-select包

组件引入

先进行下载bee-select包

npm install --save bee-select

组件调用

import Select from 'bee-select';
const Option = Select.Option;

React.render(<div>
class Demo extends Component {
	handleChange(value) {
  		console.log(`selected ${value}`);
	}
	render(){
		return( 
			<div>
			    <Select defaultValue="lucy" style={{ width: 200 }} onChange={handleChange}>
			      <Option value="jack">Jack</Option>
			      <Option value="lucy">Lucy</Option>
			      <Option value="disabled" disabled>Disabled</Option>
			      <Option value="yiminghe">Yiminghe</Option>
			    </Select>
			</div>
		)
	}
}
</div>, document.getElementById('target1');

样式引入

//如果例子中引入其他组件,需将此组件样式引入

  • 可以使用link引入dist目录下bee-select.css
<link rel="stylesheet" href="./node_modules/build/bee-select.css">
  • 可以在js中import样式
import "./node_modules/src/Select.scss"
//或是
import "./node_modules/build/bee-select.css"

API

Select

参数 说明 类型 默认值
open 控制下拉框展开收起 bool false
value 指定当前选中的条目 string/array/react node -
defaultValue 指定默认选中的条目 string/array/react node -
multiple 支持多选 bool false
allowClear 支持清除, 单选模式有效 bool false
filterOption 是否根据输入项进行筛选。当其为一个函数时,会接收 inputValue option 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 false bool/func true
tags 可以把随意输入的条目作为 tag,输入项不需要与下拉选项匹配 bool false
onSelect 被选中时调用,参数为选中项的 value 值 func -
onDeselect 取消选中时调用,参数为选中项的 option value 值,仅在 multiple 或 tags 模式下生效 func -
onChange 选中 option,或 input 的 value 变化(combobox 模式下)时,调用此函数 bool -
scrollToEdn 钩子函数 下拉列表的滚动条滚到最底触发 func -
onSearch 文本框值变化时回调 func -
onBlur 失去焦点的时回调 func 返回当前值array
onFocus 获得焦点时回调 func 返回当前值array
placeholder 选择框默认文字 string -
notFoundContent 当下拉列表为空时显示的内容 string 'Not Found'
dropdownMatchSelectWidth 下拉菜单和选择器同宽 true -
optionLabelProp 回填到选择框的 Option 的属性值,默认是 Option 的子元素。比如在子元素需要高亮效果时,此值可以设为 value string/number children (combobox 模式下为 value
combobox 输入框自动提示模式 bool false
size 选择框大小,可选 lg sm string default
showSearch 是否可以输入搜索 bool false
supportWrite 输入搜索查询时是否支持自定义输入,需配合showSearch使用,否则无效 bool false
disabled 是否禁用 bool false
defaultActiveFirstOption 是否默认高亮第一个选项 bool true
dropdownStyle 下拉菜单的 style 属性 object -
dropdownClassName 下拉菜单的 className 属性 string -
getPopupContainer 菜单渲染父节点。默认渲染到 body 上,如果你遇到菜单滚动定位问题,试试修改为滚动的区域,并相对其定位 func () => document.body
labelInValue 是否把每个选项的 label 包装到 value 中,决定 Select 的 value 类型。 bool false
data 可以设置data属性来自动生成option,可以参见demo中的示例。也可以设置是否禁用disabled Array -
autofocus 设置是否默认打开,此属性需配合onFocus、onBlur 。 bool false
onKeyDown 按下键盘的回调 func -
Children 必填,Option组件/OptGroup组件 node -

Option

参数 说明 类型 默认值
key 如果 react 需要你设置此项,此项值与 value 的值相同,然后可以省略 value 设置 string -
value 默认根据此属性值进行筛选 string -
disabled 是否禁用 bool false

OptGroup

参数 说明 类型 默认值
label 组名 string/react element -
mode string -
Children Option组件 node -

已支持的键盘操作

按键 功能
↑(上箭) 切换选项
↓(下箭) 切换选项
esc 关闭下拉项
enter 选中下拉框

注意

在Modal组件中,使用Select组件时,需要使用getPopupContainer,来让下拉显示在modal上。


return (
    <Select
        getPopupContainer={() => document.getElementById('modalId')}>
    </Select>
)

开发调试

$ git clone https://github.com/tinper-bee/bee-select
$ cd bee-select
$ npm install
$ npm run dev

Package Sidebar

Install

npm i bee-select

Weekly Downloads

106

Version

2.0.33

License

MIT

Unpacked Size

261 kB

Total Files

30

Last publish

Collaborators

  • duxue
  • jwangyangls
  • shaohlr
  • honely1314
  • xiaoshutong
  • yonyoufed
  • jonyw
  • guoyongfeng
  • kvkens
  • whizbz
  • npm_yx
  • bjyxszd
  • tinper-bot
  • houjitong
  • gaox2025f
  • gcht163
  • cnkvkens
  • diozhu
  • wangjings123
  • boyuzhou
  • ahua52