Reactjs React bootstrap如何捕获下拉列表的值
我了解了如何使用react引导显示下拉列表:Reactjs React bootstrap如何捕获下拉列表的值,reactjs,react-bootstrap,Reactjs,React Bootstrap,我了解了如何使用react引导显示下拉列表: <DropdownButton bsStyle="success" title="Choose" onSelect={this.handleSelect} > <MenuItem key="1">Action</MenuItem> <MenuItem key="2">Another action</MenuItem> <MenuItem key="3">S
<DropdownButton bsStyle="success" title="Choose" onSelect={this.handleSelect} >
<MenuItem key="1">Action</MenuItem>
<MenuItem key="2">Another action</MenuItem>
<MenuItem key="3">Something else here</MenuItem>
</DropdownButton>
另外,是否有办法设置默认选择的选项
谢谢大家! 向
onSelect
函数传递所选值
<DropdownButton title='Dropdowna' onSelect={function(evt){console.log(evt)}}>
<MenuItem eventKey='abc'>Dropdown link</MenuItem>
<MenuItem eventKey={['a', 'b']}>Dropdown link</MenuItem>
</DropdownButton>
我不确定您所说的默认值是什么意思,因为这不是选择按钮文本,而是title属性中的任何内容。如果要处理默认值,可以在值为
null
时设置一个值。如果忘记将eventKey作为第二个参数传递,这是获取所单击内容的值的正确形式:
handleSelect: function (evt,evtKey) {
// what am I suppose to write in there to get the value?
console.log(evtKey)
},
您可能需要使用FormControl>>选择组件来处理您的案例:
<FormControl componentClass="select" placeholder="select">
<option value="select">select</option>
<option value="other">...</option>
</FormControl>
选择
...
您应该更改handleSelect签名,如下所示(在Component类中):
要设置默认值,您需要使用下拉按钮上的标题
道具
Ref:太棒了,谢谢!让我澄清我的第二个问题。我的下拉列表中有三个选项。我希望默认情况下选择第一个选项。实现这一目标的正确方法是什么?再次感谢!哦,还有,你在哪里找到关于
eventKey
的文档?我确实浏览了react bootstrap的网站,但没有找到它……嗯,我想问题是这些是菜单项。我们的期望是,当用户从下拉列表中选择某个内容时,应该会发生一些事情。它没有当前值的概念。如果您试图创建一个类似表单的元素,用户可以在其中选择一个选项,然后继续,那么您可能希望在react(来自文档)中执行一个看起来像setState的操作。setState()不会立即改变此状态,而是创建一个挂起的状态转换。调用此方法后访问this.state可能会返回现有值。无法保证对setState调用的同步操作,并且可能会对调用进行批处理以提高性能。如果您以后需要做一些事情,请将回调作为setstate的第二个参数传递。不要劫持这个问题,但这对我不起作用,我得到的是SyntheticMouseEvent{dispatchConfig:Object,dispatchMarker:“.0.2.0.1.0.0.0.0.1.$=11:0.$=11:0.0”,nativeEvent:MouseEvent,键入:“click”,target:a.}
尝试记录evtI时,我使用eventKey.target.innerHTML。不确定这是否是正确的方法,但它确实起到了作用。事实上,情况正好相反。。。函数应为handleSelect:function(evtKey,event){..
Reference:
handleSelect: function (evt,evtKey) {
// what am I suppose to write in there to get the value?
console.log(evtKey)
},
<FormControl componentClass="select" placeholder="select">
<option value="select">select</option>
<option value="other">...</option>
</FormControl>
handleSelect = (evtKey, evt) => {
// Get the selectedIndex in the evtKey variable
}