npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

bee-select

v2.0.33

Published

select ui component for react

Downloads

964

Readme

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