A combo-box component for React Bootstrap.
This is a very simple stateless wrapper around DropdownButton and MenuItem.
- Minimizes the number of characters one would need to type when building a component in this fashion
- Provides a good looking dropdown component, built on Twitter Bootstrap, customizable with SASS, that works and looks the same in all major browsers
- The dropdown menu has a maximum height automatically calculated to prevent it from overflowing the viewport
- Provides a number of performance optimizations, both in JavaScript and CSS
Do not forget to set the NODE_ENV
environment variable to "production" in production to get some instant
performance increase from React for free!
npm i react-bootstrap-combobox --save
You need to include the "_index.scss" file from this package. If you are using webcompiler then you can simply do:
// import Bootstrap
@import "bootstrap";
// import Bootstrap theme
@import "bootstrap/theme";
// import the component
@import "react-bootstrap-combobox";
and then:
import {Combo} from 'react-bootstrap-combobox';
function someFunc(key: string) {
...
}
<Combo items={{
// keys must be unique
sweden: {label: 'Sweden', header: true}, // any combination of props supported by MenuItem
volvo: 'Volvo', // same as {label: 'Volvo'}
saab: 'Saab',
separator: '-', // same as {divider: true}
germany: {label: 'Germany', header: true},
mercedes: 'Mercedes',
audi: 'Audi'
}} value="volvo" onChange={someFunc} />
- Both
items
andvalue
are required props - The component is stateless, which means that its
value
cannot be changed without re-rendering it - For performance reasons
items
are considered immutable