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

142
Views
Crear un elemento de encabezado usando accesorios en TypeScript

Nuevo en TS, por lo que estoy trabajando para implementarlo en un proyecto. No sé cómo se llama esto, así que no puedo buscarlo correctamente. Si alguien tiene el término para eso, entonces cambiaré el título.

Lo que estoy tratando de hacer es pasar el accesorio de size a mi componente y usarlo para crear el elemento HTML correcto. por ejemplo size="h3" crearía un elemento <h3> .

 import React from "react"; import styles from "./Header.module.css"; interface Props { children: React.ReactNode; containerStyle?: React.CSSProperties; id: string; size?: string; title?: string; titleStyle?: React.CSSProperties; } export default function Header({ children, containerStyle, id, size = "h3", title, titleStyle, }: Props) { const HeadingTag = size; return ( <div className={styles.headerContainer} style={containerStyle}> <HeadingTag className={styles.header} style={titleStyle} id={id}> {title} </HeadingTag> <div className={styles.close}>{children}</div> </div> ); }`

El error que estoy recibiendo es:

TS2322: Escriba '{ niños: cadena | indefinido; nombre de clase: cualquiera; estilo: CSSProperties | indefinido; identificación: cadena; }' no se puede asignar al tipo 'IntrinsicAttributes'.| La propiedad 'hijos' no existe en el tipo 'IntrinsicAttributes'.

about 4 years ago · Santiago Gelvez
2 answers
Answer question

0

Usa React.createElement()

 import React from "react"; import styles from "./Header.module.css"; interface Props { children: React.ReactNode; containerStyle?: React.CSSProperties; id: string; size?: string; title?: string; titleStyle?: React.CSSProperties; } export default function Header({ children, containerStyle, id, size = "h3", title, titleStyle, }: Props) { const HeadingTag = React.createElement(size, { className: styles.header, style: titleStyle, id }, title); return ( <div className={styles.headerContainer} style={containerStyle}> {HeadingTag} <div className={styles.close}>{children}</div> </div> ); }

Otros ejemplos

about 4 years ago · Santiago Gelvez Report

0

Su problema es que está tratando de emitir y representar una cadena "h3" como un objeto jsx, lo que naturalmente producirá errores. Una cosa que podría hacer para lograr este objetivo es usar varios tipos, que contengan sus opciones de tamaño como elementos jsx reales, simplemente escriba:

 TextSize: h1 | h2 | h3 | ...

De esa manera, se asegura de que solo se puedan insertar ciertos tipos válidos específicos, y simplemente puede representar el elemento en su componente.

 <TextSize>{title}</Textsize>
about 4 years ago · Santiago Gelvez 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!