Ich habe eine Komponente namens Nav
Innerhalb components
Verzeichnis und sein Code sieht so aus:
import Link from 'next/link';
const Nav = () => {
return(
<div>
<Link href="https://stackoverflow.com/"> <a> Home </a> </Link>
<Link href="http://stackoverflow.com/about"> <a> About </a> </Link>
</div>
)
}
export default Nav;
Dies gibt mir den Fehler:
Error: React.Children.only expected to receive a single React element child.
Aber wenn ich die entferne <a>
Tags drin <Link>
Komponenten kann ich die Seiten anzeigen, aber dann erhalte ich in der Konsole eine Warnung von:
Warning: You're using a string directly inside <Link>. This usage has been deprecated. Please add an <a> tag as child of <Link>
Also was mache ich hier falsch?
Das Leerzeichen zwischen < Link > und < a > erzeugt den Fehler „Unbehandelter Laufzeitfehler Fehler: Mehrere untergeordnete Elemente wurden mit übergeben href
von /
aber nur ein Kind wird unterstützt https://nextjs.org/docs/messages/link-multiple-children
Öffnen Sie die Konsole Ihres Browsers, um den Stack-Trace der Komponente anzuzeigen.”
Entfernen Sie das Leerzeichen und es funktioniert gut.
import Link from "next/link";
const NavBar = () => {
return (
<nav>
<Link href="/"><a>Home </a></Link>
<Link href="/About"><a>About </a></Link>
<Link href="/Contact"><a>Contact </a></Link>
</nav>
)
}
export default NavBar
Ich hatte das gleiche Problem wie ich es tat:
<Link href={`/tutorial/${tutorial.slug}`}>{tutorial.title}</Link>
Die Lösung bestand darin, es in ein einzuwickeln a
Schild:
<Link href={`/tutorial/${tutorial.slug}`}><a>{tutorial.title}</a></Link>
Ich hatte einen Raum, der als undefinierte Komponente betrachtet wurde
<Link href={to}><a className={'abc'}>{children}</a> </Link>
Das Entfernen des Leerzeichens war in Ordnung. Nur 30 Minuten verloren, dank Erfahrung und Internethilfe.
Ich hatte das gleiche Problem, es gab keine Probleme mit Leerzeichen, sondern ich übergab eine ganze Zahl Verknüpfung
<Link href={{
pathname: `/dashboard/people`,
query: { idPerson: 123 }}}>
{123}
</Link>
Ich habe diesen Fehler behoben, indem ich die Ganzzahl mit analysiert habe toString() Methode
<Link href={{
pathname: `/dashboard/people`,
query: { idPerson: 123 }}}>
{(123).toString()}
</Link>
Sieht gut aus. Sind Sie sicher, dass Sie den Kinderfehler hier und nicht woanders erhalten?
– Panther
7. Mai 2020 um 6:49 Uhr
Entfernen Sie den Zwischenraum
Link
Etikett unda
Tag.. Und gib es wie,<Link href="/"><a> Home </a></Link> <Link href="/about"><a> About </a></Link>
– Maniraj Murugan
7. Mai 2020 um 6:51 Uhr
wow danke @ManirajMurugan, es hat das Problem gelöst. Aber das ist seltsam, dass ein Leerzeichen dieses Problem verursacht. Jetzt habe ich sogar versucht, s in separaten Zeilen zu haben, das hat auch kein Problem verursacht. Trotzdem danke 🙂
– Ashan Priyadarshana
7. Mai 2020 um 6:56 Uhr
@AshanPriyadarshana, Die nächste Zeile wird nicht als Leerzeichen betrachtet, aber wenn sich zwischen beiden Tags ein Leerzeichen befindet, wird dies als untergeordneter Knoten betrachtet. Gepostete Antwort mit Erklärung mit dem Grund, Leerzeichen dazwischen zu entfernen. Hoffe, es hilft ..
– Maniraj Murugan
7. Mai 2020 um 7:04 Uhr
Ich hatte einen Kommentar im Link-Tag, und das wurde dann als untergeordneter Knoten betrachtet, wodurch meine gesamte App kaputt ging. Komisches Zeug…
– Vaasu Dhand
9. März 2021 um 13:50 Uhr