FAQ: Style - Share Styles Across Multiple Components

This community-built FAQ covers the “Share Styles Across Multiple Components” exercise from the lesson "Style ".

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

Web Development

Learn ReactJS: Part II

FAQs on the exercise Share Styles Across Multiple Components

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!

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

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

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!

After step 3 of 6/6, when I import { styles }, the browser appears “Internal Error”. Since then, I just followed the instructions without the browser showing what I did. Hope this gets fixed.

The “Internal Error” in the browser panel happens on occasion. Save your work by clicking “Run”, and then refresh your browser. If you feel like this is happening far too often, check out this Troubleshooting Guide. There may be steps you can take to reduce your frustration. Happy coding!

Hahah! I laughed so hard at the end of this exercise. :grin:

13 Likes

In FacebookColorThief.js, we have

import { colorStyles } from './facebookStyles';
let divStyle = {
  backgroundColor: styles.darkBlue,
  color: styles.white
};

But we don’t import the styles object but the colorStyles object. So the above code should instead be:

import { colorStyles } from './facebookStyles';
let divStyle = {
  backgroundColor: colorStyles.darkBlue,
  color: colorStyles.white
};

Can anyone confirm this? I’m surprised that no one has pointed this out…

4 Likes

I was also wondering, actually that’s why I came to this forum, to find explanation

I’d like to know why we need to deconstruct on the import. Can we use export default to get around that?

This is just too much. I had to wash my eyes for 15 min after seeing this.

5 Likes

Elegant and Minimalistic one.

2 Likes

For me, it looks like this project was left unfinished. And FacebookColorThief.js, facebookStyles.js is the evidence lol. Even though you replace import in Home.js with
import { styles } from ‘./styles’; to
import { facebookStyles } from ‘./facebookStyles’;
still doesn’t work because facebookStyles.js doesn’t have the same keys as in styles.js

What is the benefit of using styles like this versus css-files? css-files can also be imported and linked to, and it seems to adher more to the idea of keeping styles and script separate.

1 Like

I’ve been wondering the same thing. According to the React documentation they suggest NOT using inline styles and instead use a standard CSS file for all of your styling.

2 Likes

Hey guys I have a problem and cannot solve the exercise. When I click “Run” the styles are not displayed. Then I looked into the console of my web browser and got the following errors:

Access to script at ‘https://edge.fullstory.com/s/fs.js’ from origin ‘https://www.codecademy.com’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

and

Failed to load resource: the server responded with a status of 499 (Request has been forbidden by antivirus)

What can I do?

Edit: I have found what went wrong. My styles.js file looked like this:
[styles.js]

// Wrong
// The variables can of course only be accessed after their declaration
// Point 2 of the exercise should actually have recognised the error.
export const styles = {
  fontFamily: fontFamily,
  background: background,
  fontSize:   fontSize,
  padding:    padding,
  color:      color
};

const fontFamily = 'Comic Sans MS, Lucida Handwriting, cursive';
const background = 'pink url("https://codecademy-content.s3.amazonaws.com/programs/react/images/welcome-to-my-homepage.gif") fixed';
const fontSize = '4em';
const padding = '45px 0';
const color = 'green';

But of course it should look like this

const fontFamily = 'Comic Sans MS, Lucida Handwriting, cursive';
const background = 'pink url("https://codecademy-content.s3.amazonaws.com/programs/react/images/welcome-to-my-homepage.gif") fixed';
const fontSize = '4em';
const padding = '45px 0';
const color = 'green';

// Here we go
export const styles = {
  fontFamily: fontFamily,
  background: background,
  fontSize:   fontSize,
  padding:    padding,
  color:      color
};

This way the styles are displayed #LOL

1 Like

I had the same question. Also, wouldn’t you need to export the colorStyles object from facebookStyles.js? This seems messy all around.

The client falls to pieces over your minimalist, elegant design! Raises for everyone!

1 Like

Hilarious exercise! Absolutely loved it!

2 Likes

And me too!

Thanks for commenting that and for the very valuable link. I followed it and found even more details about it, like this:

Are inline styles bad?

CSS classes are generally better for performance than inline styles.

1 Like

Theres a pretty glaring error with this excercise.
i.e the styles are being set to variables, that have not been defined.

const fontFamily = ‘Comic Sans MS, Lucida Handwriting, cursive’;
const background = ‘pink url(“https://codecademy-content.s3.amazonaws.com/programs/react/images/welcome-to-my-homepage.gif”) fixed’;
const fontSize = ‘4em’;
const padding = ‘45px 0’;
const color = ‘green’;

You would need to add the above to the code in the styles.js file. But much simplier for this excercise would be to leave the values assigned to the object as they were. I tried this but unfortunately it gave me an error. I expected later steps to correct this, but they didnt and of course I could not complete the excercise.

In styles.js, I don’t understand why go through all the trouble of:

export const styles = {
  fontFamily: fontFamily,
  background: background,
  fontSize: fontSize,
  padding: padding,
  color: color
};

When this works just the same:

export const styles = {
  fontFamily,
  background,
  fontSize,
  padding,
  color,
}

Am I missing something?

1 Like

I literally loled at this exercise!

2 Likes