--- id: 5a24c314108439a4d4036166 title: Створення компонентів React challengeType: 6 forumTopicId: 301381 dashedName: compose-react-components --- # --description-- Оскільки завдання продовжують використовувати складніші композиції з компонентами React та JSX, слід зазначити один важливий момент. Візуалізація компонентів класу ES6 в інших компонентах нічим не відрізняється від візуалізації простих компонентів, які використовувалися в останніх кількох завданнях. Можна відтворювати елементи JSX, прості функціональні компоненти та компоненти класу ES6 в рамках інших компонентів. # --instructions-- У редакторі коду компонент `TypesOfFood` вже відображає компонент з назвою `Vegetables`. Також, в останньому завданні є компонент `Fruits`. Створіть два компоненти всередині `Fruits`: спочатку - `NonCitrus`, потім - `Citrus`. Обидва ці компоненти доступні у налаштуваннях за замовчуванням. Далі, додайте компонент класу `Fruits` до компонента `TypesOfFood` під заголовком `h1` та над `Vegetables`. У результаті отримуємо низку вкладених компонентів, яка використовує два різних типи компонентів. # --hints-- Компонент `TypesOfFood` повинен показувати одинарний елемент `div`. ```js assert( (function () { const mockedComponent = Enzyme.mount(React.createElement(TypesOfFood)); return mockedComponent.children().type() === 'div'; })() ); ``` Компонент `TypesOfFood` повинен показувати компонент `Fruits`. ```js assert( (function () { const mockedComponent = Enzyme.mount(React.createElement(TypesOfFood)); return mockedComponent.children().childAt(1).name() === 'Fruits'; })() ); ``` Компонент `Fruits` повинен показувати компоненти `NonCitrus` та `Citrus`. ```js assert( (function () { const mockedComponent = Enzyme.mount(React.createElement(TypesOfFood)); return ( mockedComponent.find('Fruits').children().find('NonCitrus').length === 1 && mockedComponent.find('Fruits').children().find('Citrus').length === 1 ); })() ); ``` Компонент `TypesOfFood` повинен показувати компонент `Vegetables` нижче від компонента `Fruits`. ```js assert( (function () { const mockedComponent = Enzyme.mount(React.createElement(TypesOfFood)); return mockedComponent.children().childAt(2).name() === 'Vegetables'; })() ); ``` # --seed-- ## --before-user-code-- ```jsx class NonCitrus extends React.Component { render() { return (