我在NavDropdowns中遇到了eventKey问题。
var Navigation = React.createClass({
handleSelect: function(eventKey){
console.log(eventKey);
},
render: function() {
return (
<Navbar brand='Navbar' toggleNavKey={0}>
<CollapsibleNav eventKey={0} onSelect={this.handleSelect}>
<Nav navbar>
<NavItem eventKey={1}>Home</NavItem>
</Nav>
<Nav navbar right hide>
<NavItem eventKey={2}>Login</NavItem>
<NavDropdown eventKey={3} title='NavDropdown' id='basic-nav-dropdown'>
<MenuItem eventKey={4}>Action 1</MenuItem>
<MenuItem eventKey={5}>Action 2</MenuItem>
</NavDropdown>
</Nav>
</CollapsibleNav>
</Navbar>
)
}
});
我希望能够在我的selectHandler中告诉我点击了什么Nav元素。 这适用于除NavDropdown之外的所有元素:
单击Dropdown不会触发selectHandler,这很好。 但是,当我单击其中一个MenuItem,而不是给我一个eventKey时,它会给我一个事件对象。
如何修改NavDropdown以便它为我提供eventKey?
编辑:我的版本是:
"react": "^0.14.0-beta3",
"react-bootstrap": "^0.25.100-react-pre.0",
答案 0 :(得分:1)
这是react-bootstrap中的一个错误
https://github.com/react-bootstrap/react-bootstrap/issues/1268
答案 1 :(得分:0)
onSelect
事件的回调将获得2个参数。第一个是事件obj。第二个是EventKey。您可以在doc中阅读。因此,如果您想获取事件密钥,则应尝试在第二个参数中调用它
handleSelect: function(event,eventKey){
console.log(event)
console.log(eventKey);
},