मैं इसे ड्रॉपडाउन के लिए टॉगल पर एक कस्टम होने के द्वारा काम करने में कामयाब रहा, जो इनपुट तत्व से क्लिक होने पर कुछ भी नहीं करता है। मैं मूल रूप से कुछ इस तरह के साथ समाप्त हो गया:
तो कुछ इस तरह:
var React = require('react');
var ReactBootstrap = require('react-bootstrap'),
Dropdown = ReactBootstrap.Dropdown,
DropdownToggle = Dropdown.Toggle,
DropdownMenu = Dropdown.Menu,
Input = ReactBootstrap.Input,
MenuItem = ReactBootstrap.MenuItem;
module.exports = React.createClass({
displayName: 'DropdownWithInput',
setValue: function(e) {
var value = e.target.value;
this.setState({value: value});
},
onSelect: function(event, value) {
this.setState({value: value});
},
inputWasClicked: function() {
this._inputWasClicked = true;
},
onToggle: function(open) {
if (this._inputWasClicked) {
this._inputWasClicked = false;
return;
}
this.setState({open: open});
},
render: function() {
return (
<Dropdown id={this.props.id} open={this.state.open} onToggle={this.onToggle}
className="btn-group-xs btn-group-default">
<DropdownToggle bsStyle="default" bsSize="xs" className="dropdown-with-input dropdown-toggle">
Dropdown with input
</DropdownToggle>
<DropdownMenu>
<Input
type="text"
ref="inputElem"
autoComplete="off"
name={this.props.name}
placeholder="Type something here"
onSelect={this.inputWasClicked}
onChange={this.setValue}
/>
<MenuItem divider key={this.props.id + '-dropdown-input-divider'}/>
<MenuItem eventKey={1} onSelect={this.onSelect}>One</MenuItem>
<MenuItem eventKey={2} onSelect={this.onSelect}>Two</MenuItem>
<MenuItem eventKey={3} onSelect={this.onSelect}>Three</MenuItem>
</DropdownMenu>
</Dropdown>
);
}
});
आशा इस रूप में अच्छी तरह से आप के लिए काम करता है।
आप उस फ़ंक्शन में हैक करने की कोशिश कर रहे हैं जो मेनूइटम के लिए नहीं बनाया गया है, सामान्य रूप से बूटस्ट्रैप इसका समर्थन नहीं करता है। इनपुट के लिए आपको कस्टम मेनू इटैम बनाना होगा। –