ReactDOM.render(componentToRender, targetNode)。第一个参数是要渲染的 React 组件。第二个参数是要在其中渲染该组件的 DOM 节点。
React 组件传递到ReactDOM.render()与 JSX 元素略有不同。对于 JSX 元素,你传入的是要渲染的元素的名称。但是,对于 React 组件,你需要使用与渲染嵌套组件相同的语法,例如ReactDOM.render(<ComponentToRender />, targetNode)。你可以将此语法用于ES6类组件和函数组件。
Fruits和Vegetables组件。将两个组件渲染为TypesOfFood组件的子组件,然后将TypesOfFood渲染到 DOM 节点,在这个挑战中,请渲染到 id 为challenge-node的div中。
TypesOfFood组件应该返回单个div元素。
testString: assert((function() { const mockedComponent = Enzyme.mount(React.createElement(TypesOfFood)); return mockedComponent.children().type() === 'div'; })());
- text: TypesOfFood组件应该在h1元素之后渲染Fruits组件。
testString: assert((function() { const mockedComponent = Enzyme.mount(React.createElement(TypesOfFood)); return mockedComponent.children().childAt(1).name() === 'Fruits'; })());
- text: TypesOfFood组件应该在Fruits组件之后渲染Vegetables组件。
testString: assert((function() { const mockedComponent = Enzyme.mount(React.createElement(TypesOfFood)); return mockedComponent.children().childAt(2).name() === 'Vegetables'; })());
- text: TypesOfFood组件应该渲染到 id 为challenge-node的div中。
testString: assert((function() { const html = document.getElementById('challenge-node').childNodes[0].innerHTML; return html.includes('