--- id: 5a24bbe0dba28a8d3cbd4c5d title: Create a Complex JSX Element challengeType: 6 forumTopicId: 301382 localeTitle: 创建一个复杂的 JSX 元素 --- ## Description
上一个挑战是 JSX 的一个简单示例,但 JSX 也可以表示更复杂的 HTML。 关于嵌套的 JSX,你需要知道的一件重要的事情,那就是它必须返回单个元素。 这个父元素将包裹所有其他级别的嵌套元素。 例如,几个作为兄弟元素而编写的JSX元素没有父元素包裹将不会被转换。 这里是一个示例: 有效的 JSX: ```jsx

Paragraph One

Paragraph Two

Paragraph Three

``` 无效的 JSX: ```jsx

Paragraph One

Paragraph Two

Paragraph Three

```
## Instructions
定义一个新的常量JSX,渲染一个div,其中依次包含以下元素: 一个h1,一个p,一个包含三个li项的无序列表。你可以在每个元素中包含任何你想要的文本。 注意: 当像这样渲染多个元素时,你可以把它们都用圆括号括起来,但是这并不是必须的。还请注意,此挑战使用div标签把所有子元素包裹在里面。如果删除div,JSX 将不会编译这些元素。请记住这一点,因为当你在 React 组件中返回 JSX 元素时它也适用。
## Tests
```yml tests: - text: 常量JSX应该返回一个div元素。 testString: assert(JSX.type === 'div'); - text: div应该包含一个p标签作为第二个元素。 testString: assert(JSX.props.children[0].type === 'h1'); - text: div应该包含一个ul标签作为第三个元素。 testString: assert(JSX.props.children[1].type === 'p'); - text: div应该包含一个h1标签作为第一个元素。 testString: assert(JSX.props.children[2].type === 'ul'); - text: ul应该包含三个li元素。 testString: assert(JSX.props.children.filter(ele => ele.type === 'ul')[0].props.children.filter(ele => ele.type === 'li').length === 3); ```
## Challenge Seed
```jsx // write your code here ```
### After Test
```js ReactDOM.render(JSX, document.getElementById('root')) ```
## Solution
```js const JSX = (

Hello JSX!

Some info

); ```