|
1 | | -# listbox |
| 1 | +# react-widget-listbox |
| 2 | + |
| 3 | +## 安装 |
| 4 | +`npm install --save react-widget-select` |
| 5 | + |
| 6 | +## API |
| 7 | + |
| 8 | +```html |
| 9 | +<ListBox options={[{label:lucy, value: lucy}]}> |
| 10 | +</ListBox> |
| 11 | +``` |
| 12 | + |
| 13 | +### ListBox props |
| 14 | + |
| 15 | +| 参数 | 说明 | 类型 | 默认值 | |
| 16 | +| --- | --- | --- | --- | |
| 17 | +| prefixCls | 组件CSS样式前缀 | string | rw-listbox | |
| 18 | +| className | 组件className属性 | string | - | |
| 19 | +| style | 组件style属性 | React.CSSProperties | - | |
| 20 | +| tabIndex | 组件tabIndex属性 | number | - | |
| 21 | +| options | 组件数据 | Array\<Option> | false | |
| 22 | +| inline | 内联组件 | boolean | true | |
| 23 | +| emptyLabel | 下拉框无内容时显示 | ReactNode | no data. | |
| 24 | +| searchComponent | 自定义搜索输入框组件 | ReactNode | input | |
| 25 | +| valueField | 设置取值字段 | string | value | |
| 26 | +| labelField | 设置显示字段 | string | label | |
| 27 | +| childrenField | 设置子节点字段 | string | children | |
| 28 | +| labelInValue | 是否把每个选项的 label 包装到 value 中,会把 Select 的 value 类型从 `string` 变为 `{key: string, label: ReactNode}` 的格式 | boolean | false | |
| 29 | +| allowClear | 支持清除 | boolean | false | |
| 30 | +| autoFocus | 默认获取焦点 | boolean | false | |
| 31 | +| defaultValue | 指定默认选中的条目 | string|number | - | |
| 32 | +| value | 指定默认选中的条目 `受控` | string|number | - | |
| 33 | +| disabled | 是否禁用 | boolean | false | |
| 34 | +| readOnly | 是否只读 | boolean | false | |
| 35 | +| placeholder | 选择框默认文字 | string | - | |
| 36 | +| showArrow | 是否显示下拉小箭头 | boolean | true | |
| 37 | +| showSearch | 显示下拉框的搜索输入框 | boolean | false | |
| 38 | +| optionFilterField | 搜索时过滤对应的 option 属性 | string | label | |
| 39 | +| filterOption | 是否根据输入项进行筛选。当其为一个函数时,会接收 `searchText` `option` 两个参数,当 `option` 符合筛选条件时,应返回 `true`,反之则返回 `false`。 | boolean or function(inputValue, option) | true | |
| 40 | +| dropdownClassName | 下拉菜单的 className 属性 | string | - | |
| 41 | +| dropdownMatchSelectWidth | 下拉菜单和选择器同宽 | boolean | true | |
| 42 | +| dropdownStyle | 下拉菜单的 style 属性 | object | - | |
| 43 | +| dropdownProps | 下拉菜单扩展属性,参考`ListBox` | object | - | |
| 44 | +| placement | dropdown出现位置<`PlacementType`> | string | bottomLeft | |
| 45 | +| offset | dropdown位置偏移量 | Array<number> | [0, 0] | |
| 46 | +| popupClassName | dropdown弹出层的className属性 | string | - | |
| 47 | +| popupRootComponent | dropdown弹出层自定义组件类型 | ReactNode | div | |
| 48 | +| getPopupContainer | popup渲染父节点。默认渲染到 body 上,如果你遇到菜单滚动定位问题,试试修改为滚动的区域。 | Function(triggerNode) | () => document.body | |
| 49 | +| destroyPopupOnHide | dropdown隐藏时删除DOM节点 | boolean | true | |
| 50 | +| defaultOpen | 是否默认展开下拉菜单 | boolean | - | |
| 51 | +| open | 是否展开下拉菜单`受控` | boolean | - | |
| 52 | +| onResizeToHideDropDown | 浏览器大小改变时隐藏下拉框 | boolean | true | |
| 53 | +| onScrollToHideDropDown | 浏览器触发滚动时隐藏下拉框 | boolean | false | |
| 54 | +| renderValue | 自定义渲染被选中的选项 | (menu: ReactNode, option: Option) => ReactNode | - | |
| 55 | +| renderMenu | 自定义下拉框内容 | (menu: ReactNode, props) => ReactNode | - | |
| 56 | +| renderMenuItem | 自定义下拉选项内容 | (label:React.Node, option:Option) => ReactNode | - | |
| 57 | +| renderMenuGroupTitle | 自定义下拉分组标题内容 | (label:React.Node, option:Option) => ReactNode | - | |
| 58 | +| onBlur | 失去焦点的时回调 | function | - | |
| 59 | +| onFocus | 获得焦点时回调 | function | - | |
| 60 | +| onChange | 选中 option 时调用此函数 | function(value, option:Option) | - | |
| 61 | +| onSearch | 搜索输入框值变化时回调 | function(value: string) | | |
| 62 | +| onSelect | 被选中时调用,参数为选中项的 value (或 key) 值 | function(value, option:Option) | - | |
| 63 | +| onDropDownVisibleChange | 展开/隐藏下拉菜单的回调 | function(open) | - | |
| 64 | +| onMouseEnter | 鼠标移入时回调 | function | - | |
| 65 | +| onMouseLeave | 鼠标移出时回调 | function | - | |
| 66 | + |
| 67 | + |
| 68 | +> 注意,如果发现下拉菜单跟随页面滚动,或者需要在其他弹层中触发 Select,请尝试使用 `getPopupContainer={triggerNode => triggerNode.parentNode}` 将下拉弹层渲染节点固定在触发器的父元素中。 |
| 69 | +
|
| 70 | +### Select Methods |
| 71 | + |
| 72 | +| 名称 | 说明 | |
| 73 | +| --- | --- | |
| 74 | +| blur() | 取消焦点 | |
| 75 | +| focus() | 获取焦点 | |
| 76 | + |
| 77 | +### ListItem props |
| 78 | + |
| 79 | +| 参数 | 说明 | 类型 | 默认值 | |
| 80 | +| --- | --- | --- | --- | |
| 81 | +| disabled | 是否禁用 | boolean | false | |
| 82 | +| label | 选中该 Option 后,Select 的 title | ReactNode | - | |
| 83 | +| value | 默认根据此属性值进行筛选 | string\|number | - | |
| 84 | + |
| 85 | +### ListGroup props |
| 86 | + |
| 87 | +| 参数 | 说明 | 类型 | 默认值 | |
| 88 | +| --- | --- | --- | --- | |
| 89 | +| children | 子节点 | Array\<Option> | - | |
| 90 | +| label | 组名 | string\|React.Element | 无 | |
0 commit comments