3.6 KiB
3.6 KiB
id | title | challengeType | isRequired | videoUrl | localeTitle |
---|---|---|---|---|---|
5a24c314108439a4d4036164 | Create a Component with Composition | 6 | false | Crie um componente com composição |
Description
Navbar
, um Dashboard
e um Footer
. Para compor esses componentes juntos, você pode criar um componente pai do App
que renderize cada um desses três componentes como filhos . Para renderizar um componente como filho em um componente React, inclua o nome do componente gravado como uma tag HTML customizada no JSX. Por exemplo, no método render
você poderia escrever: Retorna (Quando o React encontra uma tag HTML personalizada que faz referência a outro componente (um nome de componente envolto em
<App>
<Navbar />
<Dashboard />
<Rodapé />
</ App>
)
< />
como neste exemplo), ele renderiza a marcação desse componente no local da tag. Isso deve ilustrar o relacionamento pai / filho entre o componente App
e a Navbar
, o Dashboard
e o Footer
. Instructions
ChildComponent
e um componente React chamado ParentComponent
. Compor os dois juntos, renderizando o ChildComponent
dentro do ParentComponent
. Certifique-se de fechar a tag ChildComponent
com uma barra. Nota: ChildComponent
é definido com uma função de seta ES6 porque esta é uma prática muito comum ao usar o React. No entanto, saiba que isso é apenas uma função. Se você não estiver familiarizado com a sintaxe da função de seta, consulte a seção JavaScript. Tests
tests:
- text: O componente React deve retornar um único elemento <code>div</code> .
testString: 'assert((function() { var shallowRender = Enzyme.shallow(React.createElement(ParentComponent)); return shallowRender.type() === "div"; })(), "The React component should return a single <code>div</code> element.");'
- text: O componente deve retornar dois elementos aninhados.
testString: 'assert((function() { var shallowRender = Enzyme.shallow(React.createElement(ParentComponent)); return shallowRender.children().length === 2; })(), "The component should return two nested elements.");'
- text: O componente deve retornar o ChildComponent como seu segundo filho.
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
const ChildComponent = () => {
return (
<div>
<p>I am the child</p>
</div>
);
};
class ParentComponent extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div>
<h1>I am the parent</h1>
{ /* change code below this line */ }
{ /* change code above this line */ }
</div>
);
}
};
After Test
console.info('after the test');
Solution
// solution required