【发布时间】:2016-01-08 21:20:33
【问题描述】:
我刚刚升级到 React Bootstrap v. 0.27.1、React v. 0.14.0 和 React Router v. 1.0.0-rc3,现在我在使用时遇到 Invariant Violation某些 React Bootstrap 组件。
未捕获的错误:不变违规:addComponentAsRefTo(...):只有 ReactOwner 可以拥有 refs。您可能正在向组件添加一个 ref,该组件不是在组件的
render方法中创建的,或者您加载了多个 React 副本(详细信息:https://fb.me/react-refs-must-have-owner)。
当我使用<Input> 和<Nav> 组件时,我特别看到了这一点。所以我得到以下行为。
// Does NOT work.
// --------------
<Navbar>
<Nav bsStyle="pills" activeKey={1}>
<NavItem eventKey={1} href="/">Home</NavItem>
</Nav>
</Navbar>
// Works
// -----
<Navbar>
<ul className="nav nav-pills">
<NavItem eventKey={1} href="/">Home</NavItem>
</ul>
</Navbar>
如您所见,将 <Nav> 切换到其常规引导标记可解决此问题。当我添加一个 <Input> 组件时也是如此。可能还有其他组件会导致问题发生,但我只将其范围缩小到这两个。
无论如何,我无法弄清楚为什么这些组件会发生这种情况而不是其他组件发生这种情况,我们将不胜感激。
【问题讨论】:
标签: reactjs react-router react-bootstrap