React-Bootstrap中的NavDropdown中的EventKeys

时间:2015-09-01 13:10:13

标签: reactjs react-bootstrap

我在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",

2 个答案:

答案 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);
 },