--- id: 5a24c314108439a4d4036165 title: Use React to Render Nested Components challengeType: 6 isRequired: false forumTopicId: 301420 localeTitle: Использовать React для вставки вложенных компонентов --- ## Description
Последняя задача показала простой способ составления двух компонентов, но есть много разных способов компоновки компонентов с помощью React. Компонентный состав является одной из мощных возможностей React. Когда вы работаете с React, важно начать думать о своем пользовательском интерфейсе с точки зрения таких компонентов, как пример приложения в последнем вызове. Вы разбиваете свой пользовательский интерфейс на свои основные строительные блоки, и эти части становятся компонентами. Это помогает отделить код, отвечающий за пользовательский интерфейс, от кода, ответственного за обработку вашей логики приложения. Это может значительно упростить разработку и сопровождение сложных проектов.
## Instructions
В редакторе кода есть два функциональных компонента, называемых TypesOfFruit и Fruits . Возьмите TypesOfFruit компонент и компоновать его, или гнездо его, в пределах Fruits компонента. Затем возьмите компонент Fruits и TypesOfFood его в компонент TypesOfFood . Результатом должен быть дочерний компонент, вложенный в родительский компонент, который вложен в собственный родительский компонент!
## Tests
```yml tests: - text: The TypesOfFood component should return a single div element. testString: assert(Enzyme.shallow(React.createElement(TypesOfFood)).type() === 'div'); - text: The TypesOfFood component should return the Fruits component. testString: assert(Enzyme.shallow(React.createElement(TypesOfFood)).props().children[1].type.name === 'Fruits'); - text: The Fruits component should return the TypesOfFruit component. testString: assert(Enzyme.mount(React.createElement(TypesOfFood)).find('h2').html() === '

Fruits:

'); - text: The TypesOfFruit component should return the h2 and ul elements. testString: assert(Enzyme.mount(React.createElement(TypesOfFood)).find('ul').text() === 'ApplesBlueberriesStrawberriesBananas'); ```
## Challenge Seed
```jsx const TypesOfFruit = () => { return (

Fruits:

  • Apples
  • Blueberries
  • Strawberries
  • Bananas
); }; const Fruits = () => { return (
{ /* change code below this line */ } { /* change code above this line */ }
); }; class TypesOfFood extends React.Component { constructor(props) { super(props); } render() { return (

Types of Food:

{ /* change code below this line */ } { /* change code above this line */ }
); } }; ```
### After Tests
```jsx ReactDOM.render(, document.getElementById('root')) ```
## Solution
```jsx const TypesOfFruit = () => { return (

Fruits:

); }; const Fruits = () => { return (
{ /* change code below this line */ } { /* change code above this line */ }
); }; class TypesOfFood extends React.Component { constructor(props) { super(props); } render() { return (

Types of Food:

{ /* change code below this line */ } { /* change code above this line */ }
); } }; ```