【发布时间】:2016-12-10 09:46:50
【问题描述】:
这是我的简单导航栏。 Codepen here:
<Navbar inverse collapseOnSelect>
<Navbar.Collapse>
<Nav>
<NavItem eventKey={1}>
<a href="http://example.com/">
Example
</a>
</NavItem>
</Nav>
</Navbar.Collapse>
</Navbar>
这会产生以下警告:
警告:validateDOMNesting(...): 不能作为 .请参阅应用 > NavItem > SafeAnchor > a > ... > a。
我了解警告来自NavItem 已经生成<a> 元素这一事实。
在寻找SafeAnchor + React的时候,我只能找到this seemingly unrelated NPM package。
最简单的破解方法似乎是将<a> 替换为自定义点击处理<span>:
openLink(href) {
event.preventDefault();
window.open(href);
}
...
<span onClick={this.openLink.bind(this, "http://example.com/"}>
Sandbox
</span>
不确定是否有一个不那么复杂但不那么复杂的解决方案?
【问题讨论】:
-
不熟悉 react-bootstrap 组件,但你不能只做
<NavItem eventKey={1} href={"http://codepen.io/Domiii/pen/JbvLbe"}>Sandbox</NavItem>吗? -
@DavidDomain Codepen 就在那里。欢迎您尝试,您会发现它不是那么可悲!我也认为它应该是好的和容易的,但到目前为止它已被证明是相当痛苦的......
标签: javascript html reactjs twitter-bootstrap-3 hyperlink