Я только что обновился до React Bootstrap v. 0.27.1, React v. 0.14.0 и React Router v. 1.0.0-rc3, и теперь я получаю Нарушение инварианта при использовании определенного React Bootstrap компоненты.
Неперехваченная ошибка: нарушение инварианта: addComponentAsRefTo(...): Только ReactOwner может иметь ссылки. Возможно, вы добавляете ссылку на компонент, который не был создан внутри метода
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>
на обычную разметку Bootstrap решает проблему. То же самое, когда я добавляю компонент <Input>
. Могут быть и другие компоненты, из-за которых что-то ломается, но я сузил список до этих двух.
В любом случае, я не могу понять, почему это происходит с этими компонентами, а не с другими, и любая помощь будет оценена по достоинству.