onSelect返回第一个param undefined

时间:2018-02-01 14:21:47

标签: reactjs typescript

我有一个带有eventhandler的下拉按钮:

onSelect={this.handleSelect.bind(this)}>

然而,我收到的第一个参数是未定义的,第二个参数是代理,其中包含有关该事件的信息。为什么我的第一个参数未定义?

  private handleSelect(e1, e2) {
    debugger;
    e1;
    console.log(e2);
  }

e1未定义 e2持有活动详情

在select上调用事件处理程序,它驻留在箭头函数

renderRanks = () => {
const { intl } = this.props;

return (
    <DropdownButton bsSize="sm" id="ranks"
      title={"Title"}>
      {this.store.levels.map((pl) =>
        <MenuItem data={pl.Id} key={pl.Number}>{pl.Name}</MenuItem>)}
    </DropdownButton>
)
}

从我的渲染中调用

{this.renderDropdown()}

2 个答案:

答案 0 :(得分:1)

请改用onChange事件。 你的函数handleSelect将如下所示

handleSelect = (event) => {
    const e1 = event.target.value // contains value of select
    const e2 = event // contains event object
}

答案 1 :(得分:1)

onSelect事件处理程序期望eventKey和event作为其参数。您声明key (来自反应),但您没有声明eventKey (来自react-bootstrap)

<MenuItem data={pl.Id} key={pl.Number} eventKey={pl.Number}>{pl.Name}</MenuItem>)}

如上所述修改您的MenuItem填充调用应该会为您提供e1 - &gt; eventKey和e2 - &gt;您handleSelect

中的活动