Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

417
Views
Next.js: Error: React.Children.only esperaba recibir un solo elemento secundario de React

Tengo un componente llamado Nav dentro del directorio de components y su código es algo como lo siguiente:

 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;

Esto me da el error:

Error: React.Children.only expected to receive a single React element child.

Pero si elimino las etiquetas <a> dentro de los componentes <Link> , puedo ver las páginas, pero luego en la consola recibo una advertencia de:

Warning: You're using a string directly inside <Link>. This usage has been deprecated. Please add an <a> tag as child of <Link>

Entonces, ¿qué estoy haciendo mal aquí?

over 4 years ago · Santiago Trujillo
4 answers
Answer question

0

Este problema se debe al espacio entre la etiqueta <Link> y la etiqueta <a> .

Así que cambia tu código como,

 <div> <Link href="/"><a> Home </a></Link> <Link href="/about"><a> About </a></Link> </div>

Motivo del cambio:

-> El <Link> solo puede tener un nodo secundario y aquí el espacio entre el link y a etiqueta se consideran nodos secundarios.

-> Entonces, hay dos nodos secundarios (uno es el espacio y otro es la etiqueta <a> ) que no es válido y, por lo tanto, se produce dicho error.

over 4 years ago · Santiago Trujillo Report

0

Tuve el mismo problema que estaba haciendo:

 <Link href={`/tutorial/${tutorial.slug}`}>{tutorial.title}</Link>

La solución fue envolverlo en a etiqueta:

 <Link href={`/tutorial/${tutorial.slug}`}><a>{tutorial.title}</a></Link>
over 4 years ago · Santiago Trujillo Report

0

Tenía un espacio que se consideraba como un componente indefinido

 <Link href={to}><a className={'abc'}>{children}</a> </Link>

Eliminando el espacio, estuvo bien. Solo 30 minutos perdidos, gracias a la experiencia y la ayuda de internet.

over 4 years ago · Santiago Trujillo Report

0

El espacio entre < Enlace > y < a > genera el error "Error de tiempo de ejecución no controlado: se pasaron varios elementos secundarios con href de / pero solo se admite un elemento secundario https://nextjs.org/docs/messages/link-multiple-children Abra la consola de su navegador para ver el seguimiento de la pila de componentes".

Retire el espacio y funciona bien.

 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
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!