Bird
Raised Fist0
Reactframework~5 mins

Sharing state between components in React - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does it mean to share state between components in React?
It means making some data available to more than one component so they can all use or update it together, like sharing a common notebook between friends.
Click to reveal answer
beginner
How can you share state between a parent and its child component?
The parent holds the state and passes it down to the child using props. The child can also receive functions from the parent to update that state.
Click to reveal answer
intermediate
What is 'lifting state up' in React?
It means moving the shared state to the closest common parent of components that need it, so they can all access and update the same state.
Click to reveal answer
intermediate
Name a React hook commonly used to share state across many components without passing props deeply.
The useContext hook lets components access shared state from a context provider without passing props through every level.
Click to reveal answer
beginner
Why is it better to avoid duplicating state in multiple components?
Duplicating state can cause inconsistencies and bugs because changes in one place won’t update the others. Sharing state keeps data in sync everywhere.
Click to reveal answer
Which React feature helps share state without passing props through many components?
AuseRef hook
BuseEffect hook
CuseContext hook
DuseState hook
What does 'lifting state up' mean?
AMoving state to the closest common parent component
BPassing state down as props
CUsing local component state only
DDuplicating state in multiple components
If a parent component holds state and passes it to a child, how can the child update that state?
ABy using useEffect hook
BBy directly changing the parent's state variable
CBy creating its own state variable
DBy calling a function passed from the parent as a prop
Why should you avoid duplicating state in multiple components?
AIt reduces code complexity
BIt can cause inconsistent data and bugs
CIt makes the app faster
DIt helps components work independently
Which of these is NOT a way to share state between React components?
AUsing local variables inside each component
BUsing React Context with useContext hook
CUsing props to pass state from parent to child
DLifting state up to a common parent
Explain how you would share a piece of state between two sibling components in React.
Think about where the state should live so both siblings can access it.
You got /3 concepts.
    Describe the role of React Context and useContext hook in sharing state.
    Imagine a shared storage accessible by many components.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main reason to share state between React components?
      easy
      A. To keep data consistent and allow multiple components to use the same information
      B. To make each component have its own separate data
      C. To avoid using props in components
      D. To prevent components from rendering

      Solution

      1. Step 1: Understand the purpose of shared state

        Sharing state means keeping data in one place so multiple components can access and update it.
      2. Step 2: Identify the benefit of shared state

        This helps keep the app consistent and easier to manage because all components see the same data.
      3. Final Answer:

        To keep data consistent and allow multiple components to use the same information -> Option A
      4. Quick Check:

        Sharing state = data consistency [OK]
      Hint: Shared state means one source of truth for data [OK]
      Common Mistakes:
      • Thinking each component should have its own separate state always
      • Confusing props with state sharing
      • Believing sharing state prevents rendering
      2. Which of the following is the correct way to pass state and its updater from a parent to a child component in React?
      easy
      A. <Child state=setState />
      B. <Child state={state} setState={setState} />
      C. <Child>{setState}</Child>
      D. <Child state>{state}</Child>

      Solution

      1. Step 1: Recall how props are passed in JSX

        Props are passed as attributes with values, like propName={value}.
      2. Step 2: Identify correct syntax for passing state and updater

        The parent passes both state and setState as props: <Child state={state} setState={setState} />.
      3. Final Answer:

        <Child state={state} setState={setState} /> -> Option B
      4. Quick Check:

        Props syntax = attribute=value [OK]
      Hint: Props use attribute={value} syntax [OK]
      Common Mistakes:
      • Using children tags incorrectly to pass props
      • Passing updater as a child instead of prop
      • Missing curly braces around JavaScript expressions
      3. Given this React code, what will be displayed when the button is clicked?
      function Parent() {
        const [count, setCount] = React.useState(0);
        return <Child count={count} setCount={setCount} />;
      }
      
      function Child({ count, setCount }) {
        return <>
          <p>Count: {count}</p>
          <button onClick={() => setCount(count + 1)}>Increment</button>
        </>;
      }
      medium
      A. Count: 0 initially, but button does nothing
      B. Count: 1 initially, then stays the same on click
      C. Count: 0 initially, then increases by 1 each click
      D. Error because setCount is not defined

      Solution

      1. Step 1: Understand initial state and props

        The parent sets count to 0 initially and passes count and setCount to Child.
      2. Step 2: Analyze button click behavior

        Clicking the button calls setCount(count + 1), increasing count by 1 each time.
      3. Final Answer:

        Count: 0 initially, then increases by 1 each click -> Option C
      4. Quick Check:

        useState count increments on click [OK]
      Hint: State updates cause re-render with new value [OK]
      Common Mistakes:
      • Thinking count starts at 1
      • Assuming button does not update state
      • Confusing setCount usage or scope
      4. Identify the error in this React code that tries to share state between components:
      function Parent() {
        const [value, setValue] = React.useState('');
        return <Child value={value} setValue={value} />;
      }
      
      function Child({ value, setValue }) {
        return <input value={value} onChange={e => setValue(e.target.value)} />;
      }
      medium
      A. value state is not initialized properly
      B. onChange handler syntax is invalid
      C. Child component should not receive props
      D. setValue prop is passed incorrectly as value instead of the updater function

      Solution

      1. Step 1: Check props passed from Parent

        Parent passes setValue={value} instead of setValue={setValue}, so setValue is a string, not a function.
      2. Step 2: Understand effect on Child component

        Child tries to call setValue as a function on input change, but it is a string, causing an error.
      3. Final Answer:

        setValue prop is passed incorrectly as value instead of the updater function -> Option D
      4. Quick Check:

        Updater function must be passed, not state value [OK]
      Hint: Pass updater function, not state value, as setState prop [OK]
      Common Mistakes:
      • Passing state value instead of updater function
      • Ignoring prop names mismatch
      • Assuming onChange syntax is wrong
      5. You want to share a counter state between two sibling components in React. Which approach correctly shares the state so both siblings update together?
      function Parent() {
        const [count, setCount] = React.useState(0);
        return (
          <>
            <SiblingA count={count} setCount={setCount} />
            <SiblingB count={count} setCount={setCount} />
          </>
        );
      }

      What is the key reason this works?
      hard
      A. State is lifted to the common parent and passed down, so both siblings share the same source
      B. Each sibling has its own state, so they update independently
      C. Using context API is required for siblings to share state
      D. State is stored inside each sibling, but synchronized automatically

      Solution

      1. Step 1: Understand state lifting

        The parent holds the state and updater, passing them as props to both siblings.
      2. Step 2: Explain shared state effect

        Because both siblings receive the same state and updater, changes in one update the parent's state, causing both to re-render with the new value.
      3. Final Answer:

        State is lifted to the common parent and passed down, so both siblings share the same source -> Option A
      4. Quick Check:

        Lift state up for shared data [OK]
      Hint: Lift state to parent to share between siblings [OK]
      Common Mistakes:
      • Thinking siblings can share state without lifting or context
      • Believing context API is always required
      • Assuming state sync happens automatically without shared source
      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