Reactjs React bootstrap如何捕获下拉列表的值

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

我了解了如何使用react引导显示下拉列表:

<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
}