En realidad, hay varias formas de hacerlo.
Quieres usar JSX dentro de tus accesorios
Simplemente puede usar {} para hacer que JSX analice el parámetro. La única limitación es la misma que para todos los elementos JSX: debe devolver solo un elemento raíz.
myProp={<div><SomeComponent>Some String</div>}
La mejor manera legible de hacerlo es crear una función renderMyProp que devolverá componentes JSX (como la función de render estándar) y luego simplemente llamar a myProp = {this.renderMyProp ()}
Quieres pasar solo HTML como una cadena
De forma predeterminada, JSX no le permite representar HTML sin formato a partir de valores de cadena. Sin embargo, hay una forma de hacerlo:
myProp="<div>This is some html</div>"
Luego, en su componente, puede usarlo así:
<div dangerouslySetInnerHTML=myProp={{ __html: this.renderMyProp() }}></div>
Tenga en cuenta que esta solución 'puede' abrirse en ataques de falsificación de secuencias de comandos entre sitios. También tenga en cuenta que solo puede renderizar HTML simple, sin etiquetas o componentes JSX u otras cosas sofisticadas.
La forma de matriz
En reaccionar, puede pasar una matriz de elementos JSX. Eso significa:
myProp={["This is html", <span>Some other</span>, "and again some other"]}
No recomendaría este método porque:
- Creará una advertencia (claves faltantes)
- No es legible
- No es realmente el método JSX, es más un truco que un diseño intencionado.
El camino de los niños
Agregándolo en aras de la integridad, pero en reacción, también puede obtener todos los elementos secundarios que están "dentro" de su componente.
Entonces, si tomo el siguiente código:
<SomeComponent>
<div>Some content</div>
<div>Some content</div>
</SomeComponent>
Entonces, los dos divs estarán disponibles como this.props.children en SomeComponent y se pueden representar con la sintaxis {} estándar.
Esta solución es perfecta cuando solo tiene un contenido HTML para pasar a su Componente (Imagine un componente de Popin que solo toma el contenido de Popin como hijos).
Sin embargo, si tiene varios contenidos, no puede usar niños (o necesita al menos combinarlo con otra solución aquí)