Img Component

Loading "Img Component"
πŸ‘¨β€πŸ’Ό Our users have noticed this annoying behavior. Here's how you reproduce it:
  • Set the playground to this exercise
  • (in a separate tab)
  • Open the dev tools
  • Notice that we've added a version query parameter to the images to simulate initial loading. This is why you see a different versions in the URL for each image.
  • Throttle your network speed in the dev tools to "Slow 3G"
  • Click a separate ship
🚨 While you're here, make sure you have Disable cache unchecked in the Network tab of dev tools. Otherwise, the browser will ignore your preloaded image and try to re-fetch it, bypassing your solution.
You should notice the network loads the data for the ship. While that happens, our pending state is shown (great job on that again). Once the data is loaded, the component re-renders with the new data (even the img src gets updated properly). However, the img is still loading. This is because the browser waits for the new image src to be loaded before switching to the new image.
Our users are confused by this, and that's what we need you to solve using Suspense, the use hook, and a preloadImage utility.
The emoji will guide you through this one. Best to start in . Lots of this will feel similar to what we were doing with the getShip regarding the caching stuff!
🚨 Note, this is extremely difficult to test, so the test may be unreliable. However, if you do throttle the network, then the test will be much more reliable.
Login to get access to the exclusive discord channel.
  • 🎣Hooks
    πŸ”€Suspense
    Clarification on how to trigger a suspense
    seven πŸš€:
    Hello, in lesson about useTransition Kent said that "anytime you have a state update thats going to ...
    3 Β· 10 days ago
  • General
    Launch editor error: Could not open 'index.html' from:'playground' in the editor.
    Japhet πŸš€ πŸ†:
    I'm encountering an issue when trying to open a link from the file list. The error message I receive...
    • βœ…1
    15 Β· a month ago
  • πŸ”€Suspense
    Suspense img tip
    Jon Winsley πŸš€:
    The solution for Suspense Img/Img Component wasn't working for me, and it took a little bit to figur...
    • πŸ™Œ3
    5 Β· 2 months ago
  • General
    Launch editor error: spawn code ENOENT
    Andrew Elans 🌌 πŸš€:
    Clicking index.html gives this error in VS Code. Both from Chrome and Safari. Anyone?
    • βœ…2
    6 Β· 2 days ago
  • General
    Welcome to EpicReact.dev! Say Hello πŸ‘‹
    Kent C. Dodds β—† πŸš€πŸ†πŸŒŒ:
    Welcome to the first of many posts in the EpicReact.dev channel! Take a moment to introduce yourself...
    • πŸš€5
    46 Β· 25 days ago
  • General
    AI Assistant?
    John πŸš€:
    Kent has mentioned an AI assistant that he's using in VSCode. Is there any detail on what that is an...
    • βœ…2
    2 Β· a month ago
  • General
    Script to save playground folder
    larissapissurno πŸš€:
    Hi all, I personally like to take notes on the playground files, so in order to not lose this notes ...
    • βœ…1
    2 Β· a month ago
  • General
    Runninng Learning app on iPad?
    marcus_polonus πŸš€:
    Hi all, Did anyone managed to setup learning app on iPad? I tried to use codesandbox, but when I am...
    • βœ…1
    1 Β· 2 months ago
  • General
    βš›οΈFundamentals
    Error boundary good practice
    Lloren πŸš€:
    I have always wondered if the error boundary is there a limit of error boundary that you can impleme...
    • βœ…1
    1 Β· a month ago
  • General
    Received this error when running the setup script for React Fundamentals
    ChrisP πŸš€:
    Hey guys, I am completely blocked at the moment. When I clone and run the setup for react fundamenta...
    • βœ…1
    2 Β· a month ago
  • General
    Unexpected server error (workshop-app does not load onboarding step)
    Matias 🌌 πŸš€:
    Hey! πŸ‘‹ I installed the free workshop "Build React Hooks" last week with no issues. Yesterday, whe...
    • βœ…1
    3 Β· a month ago
  • General
    Eye opening moment in 05/06 (β€žsatisfiesβ€œ operator of typescript)
    Chrigi πŸš€:
    Up until today I was not aware that having the type annotation on a variable is actually a type-cast...
    • πŸ™Œ2
    • βœ…1
    2 Β· a month ago
  • General
    Failed to fetch dynamically imported module...
    FacuPerezM:
    I am getting this error out of nowhere, in the 'test' tab inside the Workshop app. ``` Failed to f...
    • βœ…1
    3 Β· 2 months ago
  • General
    Epicshop not saving the video resolution
    Toni πŸš€ 🌌:
    Playback speed and caption settings are saved, but the video resolution always defaults to auto. Is ...
    • βœ…1
    7 Β· 2 months ago
  • General
    Clicking an exercise file launch VIM instead of VS Code
    DBattou πŸš€:
    I started going through the workshops, everything is setup and working fine except for opening a fil...
    • βœ…1
    2 Β· 2 months ago