【发布时间】:2017-04-23 13:10:01
【问题描述】:
我有一个使用 react-bootstrap 构建的简单导航栏,其中包含一个下拉菜单。在下拉列表中,我使用 LinkContainer 元素 (react-router-bootstrap) 将下拉列表中的每个 MenuItem 包装起来,以将项目链接到路由并突出显示活动项目。表面上一切正常,但是我在控制台中收到以下警告:
Warning: Unknown prop `active` on <li> tag. Remove this prop from the element. For details, see https://facebook.github.io/react/warnings/unknown-prop.html
in li (created by ImmerseNavbar)
in ul (created by DropdownMenu)
in RootCloseWrapper (created by DropdownMenu)
in DropdownMenu (created by Dropdown)
in li (created by Dropdown)
in Dropdown (created by Uncontrolled(Dropdown))
in Uncontrolled(Dropdown) (created by NavDropdown)
in NavDropdown (created by ImmerseNavbar)
in ul (created by Nav)
in Nav (created by ImmerseNavbar)
in div (created by Grid)
in Grid (created by Navbar)
in nav (created by Navbar)
in Navbar (created by Uncontrolled(Navbar))
in Uncontrolled(Navbar) (created by ImmerseNavbar)
in section (created by ImmerseNavbar)
in ImmerseNavbar (created by App)
in div (created by App)
in App (created by RouterContext)
in RouterContext (created by Router)
in Router
in Provider
根据我从阅读 react-bootstrap github 上的问题(https://github.com/react-bootstrap/react-bootstrap/issues/1994 等)了解到的情况,我认为问题与 <MenuItem> 将活动道具从 <LinkContainer> 传递到 <li> 有关.我对反应还很陌生,这应该是修复的,所以我做错了什么吗?
navbar.js
const ImmerseNavbar = props => (
<section id="header">
<Navbar fixedTop fluid>
<Navbar.Header>
<Navbar.Brand>
<Link to="/">
<img src="/logo.png"/>
</Link>
</Navbar.Brand>
</Navbar.Header>
<Nav>
<IndexLinkContainer to="/">
<NavItem eventKey={1} >
<i className="fa fa-th"/>
Item 1
</NavItem>
</IndexLinkContainer>
<LinkContainer to="/favourites">
<NavItem eventKey={2}>
<i className="fa fa-star"/>
Item 2
</NavItem>
</LinkContainer>
</Nav>
<Nav pullRight>
<NavDropdown eventKey={3} title="User Name" id="basic-nav-dropdown">
<LinkContainer to="/preferences">
<MenuItem eventKey={3.1}>Item 3.1</MenuItem>
</LinkContainer>
<LinkContainer to="/account">
<MenuItem eventKey={3.2}>Item 3.2</MenuItem>
</LinkContainer>
<MenuItem divider />
<li className="dropdown-header">Organisation</li>
<LinkContainer to="/organisation/manage">
<MenuItem eventKey={3.3}>Manage</MenuItem>
</LinkContainer>
<LinkContainer to="/organisation/users">
<MenuItem eventKey={3.3}>Users</MenuItem>
</LinkContainer>
<LinkContainer to="/organisation/sources">
<MenuItem eventKey={3.3}>Sources</MenuItem>
</LinkContainer>
<MenuItem divider />
<LinkContainer to="/logout">
<MenuItem eventKey={3.3}>Log out</MenuItem>
</LinkContainer>
</NavDropdown>
</Nav>
</Navbar>
</section>
);
export default ImmerseNavbar;
问题肯定在<NavDropdown> 代码中,好像我删除了那个块,问题就消失了。使用:
- 反应引导:0.30.7
- react-redux:4.4.6
- 反应路由器:3.0.0
- 反应路由器引导:0.23.1
- 反应:15.4.1
- react-dom": 15.4.1
任何帮助将不胜感激
【问题讨论】: