React Props.Children

В React вы можете отправить содержимое, расположенное между открывающим и закрывающим тегами компонента, другому компоненту.

Такое содержимое доступно в другом компоненте через свойство props.children.

Пример

Родительский компонент отправляет контент между открывающими и закрывающими тегами дочерних компонентов Son и Daughter:


// Компонент Сын
function Son(props) {
  return (
    <div style={{ background: 'lightgreen' }}>
      <h2>Сын</h2>
      <div>{props.children}</div>
    </div>
  );
}

// Компонент Дочь
function Daughter(props) {
  const { brand, model } = props;
  return (
    <div style={{ background: 'lightblue' }}>
      <h2>Дочь</h2>
      <div>{props.children}</div>
    </div>
  );
}

// Родительский компонент
function Parent() {
  return (
    <div>
      <h1>Мои двое детей</h1>
      <Son>
        <p>
          Это было написано в родительском компоненте, но отображено частью компонента сына.
        </p>
      </Son>
      <Daughter>
        <p>
          Это было написано в родительском компоненте, но отображено частью компонента дочери.
        </p>
      </Daughter>
    </div>
  );
}

createRoot(document.getElementById('root')).render(<Parent />);

Как работает пример:

  • Контент внутри тега <Son> отправляется именно этому компоненту и выводится через props.children.
  • Аналогичным образом содержимое внутри тега <Daughter> попадает внутрь этого компонента и отображается там же.

Таким образом, с помощью props.children можно динамически управлять вложенным содержимым, которое приходит из родительских компонентов.