a bee-select component for tinper-bee
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.idea
build feat(bee-select): onClick出发onFocus Nov 15, 2018
demo
dist
docs feat(bee-select): onClick出发onFocus Nov 15, 2018
src
test
.DS_Store publish 1.0.18 Oct 11, 2018
.eslintignore select组件包括 单选select 多选select 级联select 实时搜索select Dec 8, 2016
.gitignore
.npmignore dist Dec 19, 2016
.travis.yml trivas Dec 13, 2016
CHANGELOG.md publish 1.1.3 Nov 15, 2018
HISTORY.md
README.md feat(bee-select): onClick出发onFocus Nov 15, 2018
index.html ver. 1.0.0 Oct 17, 2017
package-lock.json
package.json feat(bee-select): onClick出发onFocus Nov 15, 2018

README.md

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
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 按下键盘的回调 bool -

Option

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

OptGroup

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

注意

在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