2.8 KiB
2.8 KiB
id | title | challengeType | isRequired |
---|---|---|---|
5a24bbe0dba28a8d3cbd4c5f | Render HTML Elements to the DOM | 6 | false |
Description
ReactDOM.render(componentToRender, targetNode)
, where the first argument is the React element or component that you want to render, and the second argument is the DOM node that you want to render the component to.
As you would expect, ReactDOM.render()
must be called after the JSX element declarations, just like how you must declare variables before using them.
Instructions
ReactDOM.render()
method to render this component to the page. You can pass defined JSX elements directly in as the first argument and use document.getElementById()
to select the DOM node to render them to. There is a div
with id='challenge-node'
available for you to use. Make sure you don't change the JSX
constant.
Tests
tests:
- text: The constant <code>JSX</code> should return a <code>div</code> element.
testString: assert(JSX.type === 'div', 'The constant <code>JSX</code> should return a <code>div</code> element.');
- text: The <code>div</code> should contain an <code>h1</code> tag as the first element.
testString: assert(JSX.props.children[0].type === 'h1', 'The <code>div</code> should contain an <code>h1</code> tag as the first element.');
- text: The <code>div</code> should contain a <code>p</code> tag as the second element.
testString: assert(JSX.props.children[1].type === 'p', 'The <code>div</code> should contain a <code>p</code> tag as the second element.');
- text: The provided JSX element should render to the DOM node with id <code>challenge-node</code>.
testString: assert(document.getElementById('challenge-node').childNodes[0].innerHTML === '<h1>Hello World</h1><p>Lets render this to the DOM</p>', 'The provided JSX element should render to the DOM node with id <code>challenge-node</code>.');
Challenge Seed
const JSX = (
<div>
<h1>Hello World</h1>
<p>Lets render this to the DOM</p>
</div>
);
// change code below this line
Solution
const JSX = (
<div>
<h1>Hello World</h1>
<p>Lets render this to the DOM</p>
</div>
);
// change code below this line
ReactDOM.render(JSX, document.getElementById('challenge-node'));