Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

356
Vistas
¿Cómo importar ts y html con getStaticProps para un sitio estático en Next.js?

Quiero representar datos estáticos que provienen de un archivo mecanografiado y mostrárselos al usuario. Hasta donde yo sé, tengo que usar getStaticProps para hacer que el sitio sea estático. Pero recibo un error porque no es un archivo JSON . ¿Realmente tengo que pasarlo por getStaticProps para que sea estático o, como es una importación de JavaScript como un componente solo con datos, es estático de forma predeterminada? ¿Cómo evitaría el siguiente mensaje de error?

Error:

 Error: Error serializing `.projects[0].extra.$$typeof` returned from `getStaticProps` in "/index". Reason: `symbol` cannot be serialized as JSON. Please only return JSON serializable data types.

proyectos.tsx

 const projects: [ { id: "6853939", name: "Project 01", title: "Title 01 ", previewImg: "/images/projectThumbnails/image01.jpg", extra: (<div>Extra 01</div>), }, { id: "6853939", name: "Project 02", title: "Title 02 ", previewImg: "/images/projectThumbnails/image02.jpg", extra: (<div>Extra 02</div>), } ]; export default projects;

índice.tsx

 import projects from "../data/projects.tsx"; const IndexPage = ({projects}) => { return ( <> <div> {projects.map((i) => ( <div key={i.id}>{i.title}</div> ))} </div> <div> {names.names.map((i) => ( <div key={i.name}>{i.name}</div> ))} </div> </> ); }; export const getStaticProps = async () => { return { props: { projects: projects }, }; };
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El valor de los accesorios devueltos por getStaticProps debe ser serializable, es decir, se puede convertir en una cadena (representación independiente del idioma que se puede compartir entre diferentes idiomas) con JSON.stringify() y volver a su valor original con JSON.parse() otra vez. La function de JavaScript, el Symbol , JSX , etc. no son propiedades serializables.

Esto es lo que se admite. https://www.json.org/json-en.html

En su matriz de proyectos, el valor de la clave extra es un elemento JSX que no es una propiedad serializable:

 const projects: [ { id: "6853939", name: "Project 01", title: "Title 01 ", previewImg: "/images/projectThumbnails/image01.jpg", extra: (<div>Extra 01</div>), // <= this is not serializable property }, { id: "6853939", name: "Project 02", title: "Title 02 ", previewImg: "/images/projectThumbnails/image02.jpg", extra: (<div>Extra 02</div>), // <= this is not serializable property } ]; export default projects;

Por lo tanto, está recibiendo este error.

 Error: Error serializing `.projects[0].extra.$$typeof` returned from `getStaticProps` in "/index". Reason: `symbol` cannot be serialized as JSON. Please only return JSON serializable data types.

Puede cambiar el valor de extra a una cadena en su lugar y el error debería corregirse. Por ejemplo: extra: "Extra 02" y use la cadena para imprimir el valor dentro de div en el componente.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda