--- id: 5a24c314108439a4d4036167 title: Render a Class Component to the DOM challengeType: 6 isRequired: false videoUrl: '' localeTitle: Renderizar um componente de classe para o DOM --- ## Description
Você pode se lembrar de usar a API ReactDOM em um desafio anterior para renderizar elementos JSX no DOM. O processo de renderização dos componentes do React será muito semelhante. Os últimos desafios se concentraram em componentes e composição, então a renderização foi feita para você nos bastidores. No entanto, nenhum código do React que você escrever será renderizado no DOM sem fazer uma chamada para a API do ReactDOM. Aqui está uma atualização da sintaxe: ReactDOM.render(componentToRender, targetNode) . O primeiro argumento é o componente Reagir que você deseja renderizar. O segundo argumento é o nó DOM em que você deseja renderizar esse componente. Os componentes React são passados ​​para ReactDOM.render() um pouco diferente dos elementos JSX. Para elementos JSX, você passa o nome do elemento que deseja renderizar. No entanto, para os componentes do React, você precisa usar a mesma sintaxe como se estivesse renderizando um componente aninhado, por exemplo, ReactDOM.render(<ComponentToRender />, targetNode) . Você usa essa sintaxe para componentes de classe ES6 e componentes funcionais.
## Instructions
Ambos os componentes Fruits e Vegetables são definidos para você nos bastidores. Renderize os dois componentes como filhos do componente TypesOfFood , em seguida, TypesOfFood para o DOM. Existe um div com id='challenge-node' disponível para você usar.
## Tests
```yml tests: - text: O componente TypesOfFood deve retornar um único elemento div . testString: 'assert((function() { const mockedComponent = Enzyme.mount(React.createElement(TypesOfFood)); return mockedComponent.children().type() === "div"; })(), "The TypesOfFood component should return a single div element.");' - text: O componente TypesOfFood deve renderizar o componente Fruits após o elemento h1 . testString: 'assert((function() { const mockedComponent = Enzyme.mount(React.createElement(TypesOfFood)); return mockedComponent.children().childAt(1).name() === "Fruits"; })(), "The TypesOfFood component should render the Fruits component after the h1 element.");' - text: O componente TypesOfFood deve processar o componente Vegetables após Fruits . testString: 'assert((function() { const mockedComponent = Enzyme.mount(React.createElement(TypesOfFood)); return mockedComponent.children().childAt(2).name() === "Vegetables"; })(), "The TypesOfFood component should render the Vegetables component after Fruits.");' - text: O componente TypesOfFood deve renderizar para o DOM dentro do div com o challenge-node do ID. testString: 'assert((function() { const html = document.getElementById("challenge-node").childNodes[0].innerHTML; return (html === "

Types of Food:

Fruits:

Non-Citrus:

Citrus:

Vegetables:

"); })(), "The TypesOfFood component should render to the DOM within the div with the id challenge-node.");' ```
## Challenge Seed
```jsx class TypesOfFood extends React.Component { constructor(props) { super(props); } render() { return (

Types of Food:

{/* change code below this line */} {/* change code above this line */}
); } }; // change code below this line ```
### Before Test
```jsx const Fruits = () => { return (

Fruits:

Non-Citrus:

  • Apples
  • Blueberries
  • Strawberries
  • Bananas

Citrus:

  • Lemon
  • Lime
  • Orange
  • Grapefruit
); }; const Vegetables = () => { return (

Vegetables:

  • Brussel Sprouts
  • Broccoli
  • Squash
); }; ```
## Solution
```js // solution required ```