Ответ 1
источникЧто вообще такое дети?
Документы React говорят, что вы можете использовать
props.children
для компонентов, которые представляют "общие блоки" и которые не знают своих потомков заранее. Для меня это не совсем прояснилось. Для некоторых я уверен, что это определение имеет смысл, но не для меня.Мое простое объяснение того, что делает
this.props.children
, заключается в том, что он используется для отображения того, что вы включаете между открывающим и закрывающим тегами при вызове компонента.Простой пример:
Вот пример функции без сохранения состояния, которая используется для создания компонента. Опять же, поскольку это функция,
this
ключевое слово отсутствует, поэтому просто используйтеprops.children
const Picture = (props) => {
return (
<div>
<img src={props.src}/>
{props.children}
</div>
)
}
Этот компонент содержит
<img>
который получает некоторыеprops
а затем отображает{props.children}
.Всякий раз, когда этот компонент вызывается,
{props.children}
также будет отображаться, и это всего лишь ссылка на то, что находится между открывающим и закрывающим тегами компонента.
//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>
)
}
Вместо того, чтобы вызывать компонент с самозакрывающимся тегом
<Picture/>
если вы вызываете его, будут открываться и закрываться теги<Picture> </Picture>
, тогда вы можете поместить больше кода между ним.Это
<Picture>
компонент<Picture>
от его содержимого и делает его более пригодным для повторного использования.