Note This is a minimally modified fork of fraserxu/react-dropdown, with the addition of a browser build, so that the library can be used from a CDN. This fork will become deprecated if this pull request is merged: Add browser build #174. Content below is the original README. -- Curran
Simple Dropdown component for React, inspired by react-select Demo is available here
- The default HTML select element is hard to style
- And sometime we also want grouped menus
- if you want more advanced select, check react-select
// with npm
$ npm install react-dropdown --save
// with yarn
$ yarn add react-dropdown
If you want to support React version under v0.13, use react-dropdown@v0.6.1
This is the basic usage of react-dropdown
importDropdownfrom'react-dropdown';import'react-dropdown/style.css';constoptions=['one','two','three'];constdefaultOption=options[0];<Dropdownoptions={options}onChange={this._onSelect}value={defaultOption}placeholder="Select an option"/>;Options
Flat Array options
constoptions=['one','two','three'];Object Array options
constoptions=[{value: 'one',label: 'One'},{value: 'two',label: 'Two',className: 'myOptionClassName'},{type: 'group',name: 'group1',items: [{value: 'three',label: 'Three',className: 'myOptionClassName'},{value: 'four',label: 'Four'}]},{type: 'group',name: 'group2',items: [{value: 'five',label: 'Five'},{value: 'six',label: 'Six'}]}];When using Object options you can add to each option a className string to further customize the dropdown, e.g. adding icons to options
Disabling the Dropdown
Just pass a disabled boolean value to the Dropdown to disable it. This will also give you a .Dropdown-disabled class on the element, so you can style it yourself.
<DropdowndisabledonChange={this._onSelect}value={defaultOption}placeholder="Select an option"/>;className
The className prop is passed down to the wrapper div, which also has the Dropdown-root class.
<DropdownclassName='myClassName'/>;controlClassName
The controlClassName prop is passed down to the control div, which also has the Dropdown-control class.
<DropdowncontrolClassName='myControlClassName'/>;placeholderClassName
The placeholderClassName prop is passed down to the placeholder div, which also has the Dropdown-placeholder class.
<DropdownplaceholderClassName='myPlaceholderClassName'/>;menuClassName
The menuClassName prop is passed down to the menu div (the one that opens and closes and holds the options), which also has the Dropdown-menu class.
<DropdownmenuClassName='myMenuClassName'/>;arrowClassName
The arrowClassName prop is passed down to the arrow span , which also has the Dropdown-arrow class.
<DropdownarrowClassName='myArrowClassName'/>;arrowClosed, arrowOpen
The arrowClosed & arrowOpen props enable passing in custom elements for the open/closed state arrows.
<DropdownarrowClosed={<spanclassName="arrow-closed"/>}arrowOpen={<spanclassName="arrow-open"/>}/>;Check more examples in the example folder.
Run example
$ npm start
MIT | Build for CSViz project @Wiredcraft