Что вообще такое «дети»?
В документации 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