¿Qué son incluso 'niños'?
Los documentos de React dicen que puede usar props.children
en componentes que representan 'cajas genéricas' y que no conocen a sus hijos antes de tiempo. Para mí, eso realmente no aclaró las cosas. Estoy seguro de que para algunos, esa definición tiene mucho sentido, pero para mí no.
Mi explicación simple de lo que this.props.children
hace es que se usa para mostrar todo lo que incluye entre las etiquetas de apertura y cierre al invocar un componente.
Un simple ejemplo:
A continuación, se muestra un ejemplo de una función sin estado que se utiliza para crear un componente. Nuevamente, dado que esta es una función, no hay una this
palabra clave, así que solo useprops.children
const Picture = (props) => {
return (
<div>
<img src={props.src}/>
{props.children}
</div>
)
}
Este componente contiene un <img>
que está recibiendo algo props
y luego se muestra {props.children}
.
Siempre que se invoque este componente {props.children}
, también se mostrará y esto es solo una referencia a lo que hay entre las etiquetas de apertura y cierre del componente.
//App.js
render () {
return (
<div className='container'>
<Picture key={picture.id} src={picture.src}>
//what is placed here is passed as props.children
</Picture>
</div>
)
}
En lugar de invocar el componente con una etiqueta de cierre automático, <Picture />
si lo invoca con etiquetas de apertura y cierre completas <Picture> </Picture>
, puede colocar más código entre ellas.
Esto desacopla el <Picture>
componente de su contenido y lo hace más reutilizable.
Referencia: Una introducción rápida a los accesorios de React.