EventKeys in NavDropdown in React-Bootstrap

佐手、 提交于 2020-02-20 09:06:32

问题


I have a problem with the eventKey thing in NavDropdowns.

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>

    )
  }
});

I want to be able in my selectHandler to tell what Nav element was clicked. This works great for all elements except the NavDropdown:

Clicking the Dropdown does not trigger the selectHandler, which is fine. But when I click one of the MenuItem, instead of giving me the eventKey, it gives me an event object.

How can I modify the NavDropdown so that it gives me the eventKey?


Edit: My versions are:

"react": "^0.14.0-beta3",
"react-bootstrap": "^0.25.100-react-pre.0",

回答1:


It is a bug in react-bootstrap

https://github.com/react-bootstrap/react-bootstrap/issues/1268




回答2:


The callback on onSelect event will receive 2 params. The first one is event obj. The second is EventKey. You can read it in doc. So if you want to get event key, you should try to call it in the second param

handleSelect: function(event,eventKey){
 console.log(event)
console.log(eventKey);
 },


来源:https://stackoverflow.com/questions/32332557/eventkeys-in-navdropdown-in-react-bootstrap

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!