Bird
Raised Fist0
React Nativemobile~5 mins

Loading and error states in React Native - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a loading state in a mobile app?
A loading state shows the user that the app is busy fetching data or doing work. It usually displays a spinner or progress indicator to keep the user informed.
Click to reveal answer
beginner
Why should you handle error states in your app?
Handling error states helps users understand when something went wrong and guides them on what to do next, improving user experience and app reliability.
Click to reveal answer
beginner
In React Native, which component is commonly used to show a loading spinner?
The <ActivityIndicator> component is used to show a loading spinner in React Native.
Click to reveal answer
beginner
How can you display an error message in React Native when data fails to load?
You can use a <Text> component to show a friendly error message and optionally a button to retry the action.
Click to reveal answer
intermediate
What is a good practice when showing loading and error states on mobile?
Always keep the user informed with clear messages or indicators, and provide simple ways to retry or recover from errors.
Click to reveal answer
Which React Native component shows a spinning loader?
A<ProgressBar>
B<Spinner>
C<Loader>
D<ActivityIndicator>
What should you do when your app fails to load data?
AShow an error message with retry option
BShow a blank screen
CCrash the app
DIgnore the error
Why is showing a loading state important?
ATo keep users informed that work is in progress
BTo slow down the app
CTo confuse users
DTo hide errors
Which of these is NOT a good practice for error states?
AShow clear error messages
BProvide retry options
CShow technical error codes only
DKeep the user informed
What is a simple way to implement a loading state in React Native?
AUse <Text> with 'Loading...' only
BUse <ActivityIndicator> while data loads
CDo nothing and wait silently
DReload the app
Explain how you would implement loading and error states in a React Native app fetching data from the internet.
Think about showing a spinner while waiting and a message if something goes wrong.
You got /4 concepts.
    Why is it important to handle loading and error states well in mobile apps? Give examples.
    Imagine waiting for a bus without any sign if it’s coming or not.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a loading state in a React Native app?
      easy
      A. To display an error message when something goes wrong
      B. To show the user that data is being fetched or processed
      C. To permanently hide content from the user
      D. To restart the app automatically

      Solution

      1. Step 1: Understand loading state role

        Loading states inform users that the app is busy fetching or processing data.
      2. Step 2: Differentiate from error state

        Error states show problems, not loading progress.
      3. Final Answer:

        To show the user that data is being fetched or processed -> Option B
      4. Quick Check:

        Loading state = show progress [OK]
      Hint: Loading means waiting for data, not errors [OK]
      Common Mistakes:
      • Confusing loading with error states
      • Thinking loading hides content permanently
      • Assuming loading restarts the app
      2. Which of the following is the correct way to declare a loading state using React Native's useState hook?
      easy
      A. const loading = useState(false);
      B. let loading = useState(true);
      C. var loading = useState(false);
      D. const [loading, setLoading] = useState(false);

      Solution

      1. Step 1: Recall useState syntax

        useState returns an array with current value and setter function, usually destructured.
      2. Step 2: Check options for correct destructuring

        const [loading, setLoading] = useState(false); correctly uses array destructuring with const and initial value false.
      3. Final Answer:

        const [loading, setLoading] = useState(false); -> Option D
      4. Quick Check:

        useState destructuring = const [loading, setLoading] = useState(false); [OK]
      Hint: useState returns [value, setter], destructure with const [a,b] [OK]
      Common Mistakes:
      • Not destructuring the array from useState
      • Using let or var instead of const
      • Assigning useState directly to a variable without destructuring
      3. Given this React Native snippet, what will be displayed when loading is true?
      const [loading, setLoading] = useState(true);
      return (
        loading ? Loading... : Data loaded
      );
      medium
      A. Loading...
      B. Nothing is displayed
      C. Data loaded
      D. Error message

      Solution

      1. Step 1: Check the value of loading

        loading is true initially.
      2. Step 2: Evaluate the ternary expression

        If loading is true, Loading... is returned and shown.
      3. Final Answer:

        Loading... -> Option A
      4. Quick Check:

        loading true shows loading text [OK]
      Hint: Ternary shows first option if condition true [OK]
      Common Mistakes:
      • Confusing true and false branches
      • Thinking nothing shows when loading is true
      • Assuming error message shows automatically
      4. Identify the error in this React Native code handling loading and error states:
      const [loading, setLoading] = useState(false);
      const [error, setError] = useState(null);
      
      if (loading) {
        return Loading...;
      } else if (error) {
        return Error occurred;
      }
      return Data loaded;
      medium
      A. Error state should be a boolean, not null
      B. The if-else logic is reversed
      C. Loading state should be true initially to show loading
      D. No error, code works fine

      Solution

      1. Step 1: Check initial loading state

        Loading is false initially, so loading screen never shows on start.
      2. Step 2: Understand typical loading flow

        Loading should start as true while fetching data, then false after.
      3. Final Answer:

        Loading state should be true initially to show loading -> Option C
      4. Quick Check:

        Initial loading true needed to show loading [OK]
      Hint: Loading usually starts true before data fetch [OK]
      Common Mistakes:
      • Setting loading false initially hides loading screen
      • Thinking error must be boolean
      • Assuming if-else order is wrong
      5. You want to show a loading spinner while fetching data, then show an error message if fetch fails, or the data if successful. Which React Native pattern correctly handles these states?
      hard
      A. Use separate states: loading (boolean), error (string|null), data (object|null), and conditionally render based on these
      B. Only use a loading state and ignore errors
      C. Use a single state variable for all three states with strings 'loading', 'error', 'data'
      D. Render data immediately without any loading or error checks

      Solution

      1. Step 1: Understand state separation

        Separate states for loading, error, and data allow clear control of UI for each condition.
      2. Step 2: Evaluate options

        Use separate states: loading (boolean), error (string|null), data (object|null), and conditionally render based on these uses best practice: boolean loading, error message or null, and data object or null.
      3. Final Answer:

        Use separate states: loading (boolean), error (string|null), data (object|null), and conditionally render based on these -> Option A
      4. Quick Check:

        Separate states for clarity and control [OK]
      Hint: Use separate states for loading, error, and data [OK]
      Common Mistakes:
      • Ignoring error handling
      • Using one string state for all conditions
      • Rendering data without waiting for fetch
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard