【发布时间】:2020-08-22 09:04:03
【问题描述】:
我在components 目录中有一个名为Nav 的组件,它的代码如下所示:
import Link from 'next/link';
const Nav = () => {
return(
<div>
<Link href="/"> <a> Home </a> </Link>
<Link href="/about"> <a> About </a> </Link>
</div>
)
}
export default Nav;
这给了我错误:
Error: React.Children.only expected to receive a single React element child.
但是,如果我删除 <Link> 组件中的 <a> 标记,我可以查看页面,但是在控制台中我会收到以下警告:
Warning: You're using a string directly inside <Link>. This usage has been deprecated. Please add an <a> tag as child of <Link>
那么我在这里做错了什么?
【问题讨论】:
-
看起来不错。你确定你在这里收到了孩子的错误,而不是在其他地方......
-
删除
Link标签和a标签之间的空格。然后给它,<Link href="/"><a> Home </a></Link> <Link href="/about"><a> About </a></Link> -
哇谢谢@ManirajMurugan,它解决了这个问题。但这很奇怪有一个空间导致这个问题。现在我什至尝试将 也放在单独的行中,这也没有引起任何问题。无论如何谢谢:)
-
@AshanPriyadarshana,下一行不被视为空格,但如果两个标签之间有空格,则被视为子节点 .. 已发布答案并附有删除原因的解释之间的空白..希望它有所帮助..
-
我在 Link 标签中有一个评论,然后它被认为是一个子节点,破坏了我的整个应用程序。奇怪的东西...
标签: javascript html reactjs frontend next.js