--- id: 5a24c314108439a4d4036164 title: Create a Component with Composition challengeType: 6 isRequired: false videoUrl: '' localeTitle: Создание компонента с композицией --- ## Description
Теперь мы рассмотрим, как мы можем собрать несколько компонентов React вместе. Представьте, что вы создаете приложение и создали три компонента: Navbar , Dashboard и Footer . Чтобы собрать эти компоненты вместе, вы можете создать родительский компонент App который отображает каждый из этих трех компонентов в качестве дочерних . Чтобы отобразить компонент как дочерний элемент в компоненте React, вы включаете имя компонента, написанное как пользовательский тег HTML в JSX. Например, в методе render вы можете написать:
вернуть (
<App>
<Navbar />
<Панель мониторинга />
<Footer />
</ Приложение>
)
Когда React встречает пользовательский тег HTML, который ссылается на другой компонент (имя компонента, заключенное в < /> как в этом примере), он отображает разметку для этого компонента в местоположении тега. Это должно иллюстрировать отношения между родителями и дочерними элементами между компонентом App и Navbar , Dashboard и Footer .
## Instructions
В редакторе кода есть простой функциональный компонент ChildComponent и компонент React, называемый ParentComponent . Составьте два вместе рендерингом ChildComponent в ParentComponent . Убедитесь, что тег ChildComponent косой чертой. Примечание. ChildComponent определяется с помощью функции стрелок ES6, потому что это очень распространенная практика при использовании React. Однако, знайте, что это всего лишь функция. Если вы не знакомы с синтаксисом функции стрелки, обратитесь к разделу JavaScript.
## Tests
```yml tests: - text: Компонент React должен возвращать один элемент div . testString: 'assert((function() { var shallowRender = Enzyme.shallow(React.createElement(ParentComponent)); return shallowRender.type() === "div"; })(), "The React component should return a single div element.");' - text: Компонент должен возвращать два вложенных элемента. testString: 'assert((function() { var shallowRender = Enzyme.shallow(React.createElement(ParentComponent)); return shallowRender.children().length === 2; })(), "The component should return two nested elements.");' - text: Компонент должен вернуть ChildComponent в качестве второго ребенка. testString: 'assert((function() { const mockedComponent = Enzyme.mount(React.createElement(ParentComponent)); return mockedComponent.find("ParentComponent").find("ChildComponent").length === 1; })(), "The component should return the ChildComponent as its second child.");' ```
## Challenge Seed
```jsx const ChildComponent = () => { return (

I am the child

); }; class ParentComponent extends React.Component { constructor(props) { super(props); } render() { return (

I am the parent

{ /* change code below this line */ } { /* change code above this line */ }
); } }; ```
### After Test
```js console.info('after the test'); ```
## Solution
```js // solution required ```