首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React-Router with Reactstrap导致警告

React-Router with Reactstrap导致警告
EN

Stack Overflow用户
提问于 2018-03-29 20:23:21
回答 1查看 289关注 0票数 0

我有一个带有品牌的导航栏,我希望该品牌是一个到主页的链接。

代码语言:javascript
复制
import { NavLink } from "react-router-dom";

.
.
.

<Navbar color="white" light expand="sm" className="py-0">
  <NavLink to="/">
    <NavbarBrand>
      <img src={ logo } />
    </NavbarBrand>   
  </NavLink >
</Navbar>

这将导致以下警告:

代码语言:javascript
复制
Warning: validateDOMNesting(...): <a> cannot appear as a descendant of <a>.
    in a (created by NavbarBrand)
    in NavbarBrand (at NavBar.js:53)
    in a (created by Link)
    in Link (created by Route)
    in Route (created by NavLink)

那么如何继续使用reactstrap和react-router呢?

EN

回答 1

Stack Overflow用户

发布于 2018-04-16 04:26:58

<NavbarLink /><NavbarBrand />都呈现一个超文本标记语言锚(<a>)。

通过将一个作为另一个的子节点传递,您正在呈现另一个节点中的锚点,这是无效的HTML,这就是为什么您的浏览器会警告您。

最简单的解决方案是使用tag属性来选择要呈现的组件,并使用函数来定义特定的属性,如to="..."

代码语言:javascript
复制
<Navbar color="white" light expand="sm" className="py-0">
  <NavbarBrand tag={(props) => <NavLink to="/" {...props} />}>
    <img src={ logo } />
  </NavbarBrand >
</Navbar>

PS :注意不要把reactstrap <NavLink />和react-router <NavLink /> :)混淆在一起,如果需要的话,可以使用重命名的导入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49556001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档