Что вообще такое «дети»?
В документации 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>компонент от его содержимого и делает его более пригодным для повторного использования.
Ссылка: краткое введение в props.children React