@GreenMan1899

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

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

5cc603f16508e723931654.png
  • Вопрос задан
  • 462 просмотра
Решения вопроса 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.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы