Задать вопрос
@GreenMan1899

Как вывести в компонент другие компоненты, переданные как prop?

Передаю компоненты Header и Footer в компонент Layout и хочу их вывести внутри него.
Как это правильно сделать?
Сейчас в console.log который вызывается в layout передаются функции этих компонентов, но в render ничего не появляется.

5cc603f16508e723931654.png
  • Вопрос задан
  • 474 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 2
Vlad_IT
@Vlad_IT
Front-end разработчик
Header у вас является компонентом, а не элементом (экземпляром). Поэтому получая его из пропсов, вы получаете обычный компонент, который стандартным образом рисуете.
const { Header, Footer } = this.props;

return (
    <Fragment>
        <Header />
        <Footer />
     </Fragment>
);

Но лучше передавать не компонент, а render функцию https://reactjs.org/docs/render-props.html.
Ответ написан
rockon404
@rockon404 Куратор тега React
Frontend Developer
Вы передаете в рендер функцию компонента вместо того чтобы его отрисовывать.
Проблему исправит:
const { header: Header, footer: Footer } = this.props;

return (
  <Fragment>
    <Header />
    <Footer />
  </Fragment>
);


Но советую вам спроектировать этот участок иначе. Со стороны не видно никакого смысла в передаче Header и Footer в виде свойств. Их лучше импортировать в файле компонента Layout.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽