FAQ: Components Render Other Components - Review

This community-built FAQ covers the “Review” exercise from the lesson “Components Render Other Components”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Create a Front-End App with React
Full-Stack Engineer
Front-End Engineer
Create an Advanced Web App with React and Redux
Front-End Development
Front-End Development

Learn React
Learn React: Introduction

FAQs on the exercise Review

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!
You can also find further discussion and get answers to your questions over in Language Help.

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head to Language Help and Tips and Resources. If you are wanting feedback or inspiration for a project, check out Projects.

Looking for motivation to keep learning? Join our wider discussions in Community

Learn more about how to use this guide.

Found a bug? Report it online, or post in Bug Reporting

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

Any working solution for this exercise?

2 Likes

HelloWorld.js
import React from “react”;

function HelloWorld() {
return (


Hello World!



);
}

export default HelloWorld;

App.js
import React from ‘react’;
import HelloWorld from ‘./HelloWorld’;

function App() {
return (

);
}

export default App;

index.js
import React from “react”;

import ReactDOM from “react-dom/client”;

import App from “./App”;

const root = ReactDOM.createRoot(document.getElementById(“app”));

root.render();

1 Like

Solution

In the HelloWorld.js file:

import React from "react";

function HelloWorld() {
  return <h1>Hello World!</h1>;
}

export default HelloWorld;

In the App.js file:

import React from "react";
import HelloWorld from "./HelloWorld";

function App() {
  return <HelloWorld />;
}

export default App;

In the index.js file:

import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App";

const root = ReactDOM.createRoot(document.getElementById("app"));

root.render(<App />);
2 Likes

Something that’s been bugging me a lot as this tutorial rolls on, but came to a head with this exercise:

Where does the id of “app” come from? In the solution to this exercise, it is never defined, but yet is referenced and works. In other exercises, “app” is formally defined as an ID for a tag in html code somewhere. How do I know which to do? Where is the “app” tag located (and what does it refer to) when none of our written code defines the “app” id?

1 Like

If you click the file icon in the text editor. You will find an HTML file. If you go to the body you will see the “app” id.

1 Like

for my index.js I had this but it did not work:

import React from 'react'; import ReactDOM from 'react-dom/client'; ReactDOM.render(<App />, document.getEleemntById("app"));

This was really helpful, thank you!

For some reason, this code does not work here

const container = document.getElementById("app");

const root = createRoot(container);

Requires writing exactly ReactDOM.createRoot(container);

Works:

const container = document.getElementById("app");

const root = ReactDOM.createRoot(container);

It probably has to do with your import statements.

import ReactDOM from "react-dom/client";

const container = document.getElementById("app");

const root = ReactDOM.createRoot(container);

versus

import { createRoot } from "react-dom/client";

const container = document.getElementById("app");

const root = createRoot(container);
1 Like

Yes, everything works. You’re absolutely right.
Thanks!

1 Like

why isnt mine working?

import React from ‘react’;

function HelloWorld(){

return

Hello World

}

export default HelloWorld;

import React from ‘react’;
import HelloWorld from ‘./HelloWorld’;

function App(){
return
{HelloWorld}
};
export default App;

import React from “react”;

import ReactDOM from “react-dom/client”;

import App from “./App”;

import {createRoot} from “react-dom/client”;

// const root = ReactDOM.createRoot(document.getElementById(“app”));

// root.render();

const container = document.getElementById(“app”);

const root = createRoot(container);

why isnt mine working?

When code is copy pasted directly into the forums, formatting is lost and it is difficult to read the code.

To preserve code formatting in forum posts, see: [How to] Format code in posts

Can you share your properly formatted code?

A cursory look shows you have written

return {HelloWorld}

Perhaps you intended it to be:

return <HelloWorld />