我有一个带有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()}
答案 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