This commit is contained in:
2026-05-25 17:08:18 +08:00
parent df501f6151
commit f1259b71b5
9178 changed files with 1626125 additions and 0 deletions
+166
View File
@@ -0,0 +1,166 @@
# @rc-component/dropdown
react dropdown component.
[![NPM version][npm-image]][npm-url] [![npm download][download-image]][download-url] [![build status][github-actions-image]][github-actions-url] [![Codecov][codecov-image]][codecov-url] [![bundle size][bundlephobia-image]][bundlephobia-url] [![dumi][dumi-image]][dumi-url]
[npm-image]: https://img.shields.io/npm/v/@rc-component/dropdown.svg?style=flat-square
[npm-url]: https://npmjs.org/package/@rc-component/dropdown
[travis-image]: https://img.shields.io/travis/react-component/dropdown/master?style=flat-square
[travis-url]: https://travis-ci.com/react-component/dropdown
[github-actions-image]: https://github.com/react-component/dropdown/actions/workflows/ci.yml/badge.svg
[github-actions-url]: https://github.com/react-component/dropdown/actions/workflows/ci.yml
[codecov-image]: https://img.shields.io/codecov/c/github/react-component/dropdown/master.svg?style=flat-square
[codecov-url]: https://app.codecov.io/gh/react-component/dropdown
[david-url]: https://david-dm.org/react-component/dropdown
[david-image]: https://david-dm.org/react-component/dropdown/status.svg?style=flat-square
[david-dev-url]: https://david-dm.org/react-component/dropdown?type=dev
[david-dev-image]: https://david-dm.org/react-component/dropdown/dev-status.svg?style=flat-square
[download-image]: https://img.shields.io/npm/dm/@rc-component/dropdown.svg?style=flat-square
[download-url]: https://npmjs.org/package/@rc-component/dropdown
[bundlephobia-url]: https://bundlephobia.com/package/@rc-component/dropdown
[bundlephobia-image]: https://badgen.net/bundlephobia/minzip/@rc-component/dropdown
[dumi-url]: https://github.com/umijs/dumi
[dumi-image]: https://img.shields.io/badge/docs%20by-dumi-blue?style=flat-square
## Screenshot
![](https://t.alipayobjects.com/images/rmsweb/T1bWpgXgBaXXXXXXXX.png)
## Example
online example: http://react-component.github.io/dropdown/examples/
## install
[![@rc-component/dropdown](https://nodei.co/npm/@rc-component/dropdown.png)](https://npmjs.org/package/@rc-component/dropdown)
## Usage
```js
var Dropdown = require('@rc-component/dropdown');
// use dropdown
```
## API
### props
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="width: 100px;">name</th>
<th style="width: 50px;">type</th>
<th style="width: 50px;">default</th>
<th>description</th>
</tr>
</thead>
<tbody>
<tr>
<td>overlayClassName</td>
<td>String</td>
<td></td>
<td>additional css class of root dom node</td>
</tr>
<tr>
<td>openClassName</td>
<td>String</td>
         <td>`${prefixCls}-open`</td>
         <td>className of trigger when dropdown is opened</td>
</tr>
<tr>
<td>prefixCls</td>
<td>String</td>
<td>rc-dropdown</td>
<td>prefix class name</td>
</tr>
<tr>
<td>transitionName</td>
<td>String</td>
<td></td>
<td>dropdown menu's animation css class name</td>
</tr>
<tr>
<td>animation</td>
<td>String</td>
<td></td>
<td>part of dropdown menu's animation css class name</td>
</tr>
<tr>
<td>placement</td>
<td>String</td>
<td>bottomLeft</td>
<td>Position of menu item. There are: top, topCenter, topRight, bottomLeft, bottom, bottomRight </td>
</tr>
<tr>
<td>onVisibleChange</td>
<td>Function</td>
<td></td>
<td>call when visible is changed</td>
</tr>
<tr>
<td>visible</td>
<td>boolean</td>
<td></td>
<td>whether tooltip is visible</td>
</tr>
<tr>
<td>defaultVisible</td>
<td>boolean</td>
<td></td>
<td>whether tooltip is visible initially</td>
</tr>
<tr>
<td>overlay</td>
<td>rc-menu</td>
<td></td>
<td><a href="https://github.com/react-component/menu">rc-menu</a> element</td>
</tr>
<tr>
<td>onOverlayClick</td>
<td>function(e)</td>
<td></td>
<td>call when overlay is clicked</td>
</tr>
<tr>
<td>minOverlayWidthMatchTrigger</td>
<td>boolean</td>
         <td>true (false when set alignPoint)</td>
         <td>whether overlay's width must not be less than trigger's </td>
</tr>
<tr>
<td>getPopupContainer</td>
<td>Function(menuDOMNode): HTMLElement</td>
<th>() => document.body</th>
<td>Where to render the DOM node of dropdown</td>
</tr>
</tbody>
</table>
Note: Additional props are passed into the underlying [rc-trigger](https://github.com/react-component/trigger) component. This can be useful for example, to display the dropdown in a separate [portal](https://reactjs.org/docs/portals.html)-driven window via the `getDocument()` rc-trigger prop.
## Development
```bash
npm install
npm start
```
## Test Case
```bash
npm test
npm run chrome-test
```
## Coverage
```bash
npm run coverage
```
open coverage/ dir
## License
@rc-component/dropdown is released under the MIT license.