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 > );
```