2021-06-15 00:49:18 -07:00
---
id: 5a24bbe0dba28a8d3cbd4c5d
2021-06-26 21:42:30 +05:30
title: Creare un elemento JSX complesso
2021-06-15 00:49:18 -07:00
challengeType: 6
forumTopicId: 301382
dashedName: create-a-complex-jsx-element
---
# --description--
2021-06-26 21:42:30 +05:30
L'ultima sfida è stata un semplice esempio di JSX, ma JSX può rappresentare anche HTML più complesso.
2021-06-15 00:49:18 -07:00
2021-06-26 21:42:30 +05:30
Una cosa importante da sapere sul JSX annidato è che deve restituire un singolo elemento.
2021-06-15 00:49:18 -07:00
2021-06-26 21:42:30 +05:30
Questo elemento genitore avvolgerà tutti gli altri livelli di elementi annidati.
2021-06-15 00:49:18 -07:00
2021-06-26 21:42:30 +05:30
Per esempio, diversi elementi JSX scritti come fratelli senza un elemento genitore che li contenga, non saranno transcodificati.
2021-06-15 00:49:18 -07:00
2021-06-26 21:42:30 +05:30
Ecco un esempio:
2021-06-15 00:49:18 -07:00
2021-06-26 21:42:30 +05:30
**JSX valido:**
2021-06-15 00:49:18 -07:00
```jsx
<div>
<p>Paragraph One</p>
<p>Paragraph Two</p>
<p>Paragraph Three</p>
</div>
```
2021-06-26 21:42:30 +05:30
**JSX non valido:**
2021-06-15 00:49:18 -07:00
```jsx
<p>Paragraph One</p>
<p>Paragraph Two</p>
<p>Paragraph Three</p>
```
# --instructions--
2021-06-26 21:42:30 +05:30
Definisci una nuova costante `JSX` che esegua il render di un `div` che contenga i seguenti elementi in ordine:
2021-06-15 00:49:18 -07:00
2021-08-20 00:00:51 -07:00
Un `h1` , un `p` e una lista non ordinata che contiene tre elementi `li` . Puoi includere qualsiasi testo desideri all'interno di ogni elemento.
2021-06-15 00:49:18 -07:00
2021-06-26 21:42:30 +05:30
**Nota:** Quando si visualizzano più elementi come questo, è possibile avvolgerli tutti in parentesi, ma non è strettamente necessario. Nota anche che questa sfida utilizza un tag `div` per avvolgere tutti gli elementi figli all'interno di un singolo elemento genitore. Se rimuovi il `div` , il JSX non sarà più transcodificato. Tienilo a mente, perché questo si applicherà anche quando restituirai elementi JSX in componenti React.
2021-06-15 00:49:18 -07:00
# --hints--
2021-06-26 21:42:30 +05:30
La costante `JSX` dovrebbe restituire un elemento `div` .
2021-06-15 00:49:18 -07:00
```js
assert(JSX.type === 'div');
```
2021-06-26 21:42:30 +05:30
Il `div` dovrebbe contenere un tag `h1` come primo elemento.
2021-06-15 00:49:18 -07:00
```js
assert(JSX.props.children[0].type === 'h1');
```
2021-06-26 21:42:30 +05:30
Il `div` dovrebbe contenere un tag `p` come secondo elemento.
2021-06-15 00:49:18 -07:00
```js
assert(JSX.props.children[1].type === 'p');
```
2021-06-26 21:42:30 +05:30
Il `div` dovrebbe contenere un tag `ul` come terzo elemento.
2021-06-15 00:49:18 -07:00
```js
assert(JSX.props.children[2].type === 'ul');
```
2021-06-26 21:42:30 +05:30
L'elemento `ul` dovrebbe contenere tre elementi `li` .
2021-06-15 00:49:18 -07:00
```js
assert(
JSX.props.children
.filter((ele) => ele.type === 'ul')[0]
.props.children.filter((ele) => ele.type === 'li').length === 3
);
```
# --seed--
## --after-user-code--
```jsx
ReactDOM.render(JSX, document.getElementById('root'))
```
## --seed-contents--
```jsx
```
# --solutions--
```jsx
const JSX = (
<div>
<h1>Hello JSX!</h1>
<p>Some info</p>
<ul>
<li>An item</li>
<li>Another item</li>
<li>A third item</li>
</ul>
</div>);
```