O que é mesmo 'crianças'?
Os documentos do React dizem que você pode usar props.children
em componentes que representam 'caixas genéricas' e que não conhecem seus filhos com antecedência. Para mim, isso realmente não esclareceu as coisas. Tenho certeza de que para alguns essa definição faz todo o sentido, mas não para mim.
Minha explicação simples do que this.props.children
faz é que ele é usado para exibir tudo o que você inclui entre as tags de abertura e fechamento ao invocar um componente.
Um exemplo simples:
Aqui está um exemplo de função sem estado usada para criar um componente. Novamente, uma vez que esta é uma função, não há this
palavra-chave, então apenas useprops.children
const Picture = (props) => {
return (
<div>
<img src={props.src}/>
{props.children}
</div>
)
}
Este componente contém um <img>
que está recebendo alguns props
e depois é exibido {props.children}
.
Sempre que este componente for invocado {props.children}
também será exibido e esta é apenas uma referência ao que está entre as tags de abertura e fechamento do 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>
)
}
Em vez de invocar o componente com uma tag de fechamento automático, <Picture />
se você invocar as tags de abertura e fechamento completas, <Picture> </Picture>
você pode colocar mais código entre ele.
Isso separa o <Picture>
componente de seu conteúdo e o torna mais reutilizável.
Referência: uma introdução rápida aos props.children de React