Bird
Raised Fist0
Reactframework~20 mins

State re-render behavior in React - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
State Re-render Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What happens when state is updated with the same value?

Consider this React component:

function Counter() {
  const [count, setCount] = React.useState(0);
  return (
    <button onClick={() => setCount(0)}>Count: {count}</button>
  );
}

What happens when the button is clicked?

React
function Counter() {
  const [count, setCount] = React.useState(0);
  return (
    <button onClick={() => setCount(0)}>Count: {count}</button>
  );
}
AThe component does not re-render because the state value did not change.
BThe component re-renders only if a second argument is passed to setCount.
CThe component throws an error because setting the same state is invalid.
DThe component re-renders even though the state value is the same.
Attempts:
2 left
💡 Hint

React compares the new state value with the previous one before re-rendering.

❓ state_output
intermediate
2:00remaining
What is the output after multiple state updates?

Given this React component:

function Example() {
  const [value, setValue] = React.useState(0);

  React.useEffect(() => {
    setValue(value + 1);
    setValue(value + 2);
  }, []);

  return <div>Value: {value}</div>;
}

What will be displayed after the component mounts?

React
function Example() {
  const [value, setValue] = React.useState(0);

  React.useEffect(() => {
    setValue(value + 1);
    setValue(value + 2);
  }, []);

  return <div>Value: {value}</div>;
}
AValue: 0
BValue: 2
CValue: 3
DValue: 1
Attempts:
2 left
💡 Hint

State updates inside the same event are batched and the last update wins.

❓ lifecycle
advanced
2:00remaining
When does a React component re-render due to state changes?

Which of these scenarios will cause a React functional component to re-render?

AChanging a variable declared outside the component function.
BCalling setState with the same primitive value as current state.
CUpdating a ref value using useRef without calling setState.
DCalling setState with a new object reference, even if contents are the same.
Attempts:
2 left
💡 Hint

React re-renders when state changes to a new value by reference or primitive comparison.

📝 Syntax
advanced
2:00remaining
Which code correctly updates state based on previous state?

Which of these React state updates correctly increments a counter based on previous state?

AsetCount(prevCount => prevCount + 1);
BsetCount(() => count + 1);
CsetCount(count + 1);
DsetCount(count++);
Attempts:
2 left
💡 Hint

When updating state based on previous state, use a function argument.

🔧 Debug
expert
3:00remaining
Why does this React component re-render infinitely?

Examine this React component:

function Infinite() {
  const [count, setCount] = React.useState(0);

  React.useEffect(() => {
    setCount(count + 1);
  }, [count]);

  return <div>Count: {count}</div>;
}

Why does it keep re-rendering?

React
function Infinite() {
  const [count, setCount] = React.useState(0);

  React.useEffect(() => {
    setCount(count + 1);
  }, [count]);

  return <div>Count: {count}</div>;
}
ABecause useEffect has no dependency array, so it runs on every render.
BBecause count is mutated directly causing infinite loop.
CBecause setCount inside useEffect updates count, triggering useEffect again endlessly.
DBecause React does not allow state updates inside useEffect.
Attempts:
2 left
💡 Hint

Check what triggers the useEffect and what it does inside.

Practice

(1/5)
1. What happens in React when you update a component's state using setState?
easy
A. React re-renders that component and its children to update the UI.
B. React reloads the entire page to reflect the changes.
C. React ignores the change unless the component is a class component.
D. React only updates the state internally without changing the UI.

Solution

  1. Step 1: Understand what setState does

    Using setState tells React that the component's state has changed and it needs to update the UI.
  2. Step 2: Know React's rendering behavior

    React re-renders the component where state changed and all its child components to reflect the new state.
  3. Final Answer:

    React re-renders that component and its children to update the UI. -> Option A
  4. Quick Check:

    State change triggers re-render = B [OK]
Hint: State change triggers re-render of component and children [OK]
Common Mistakes:
  • Thinking React reloads the whole page
  • Believing state changes don't affect functional components
  • Assuming UI doesn't update automatically
2. Which of the following is the correct way to update state in a React functional component?
easy
A. this.state.count = 1;
B. updateState({count: 1});
C. count = 1;
D. setCount(1);

Solution

  1. Step 1: Recall how state is updated in functional components

    Functional components use the useState hook, which returns a setter function like setCount.
  2. Step 2: Identify the correct syntax

    Calling setCount(1) updates the state and triggers a re-render.
  3. Final Answer:

    setCount(1); -> Option D
  4. Quick Check:

    Use setter function from useState = D [OK]
Hint: Use the setter function from useState to update state [OK]
Common Mistakes:
  • Trying to assign state directly like a variable
  • Using this.state in functional components
  • Using non-existent functions like updateState
3. Consider this React component code:
function Counter() {
  const [count, setCount] = React.useState(0);
  React.useEffect(() => {
    console.log('Rendered with count:', count);
  });
  return  setCount(count + 1)}>Click {count};
}

What will be logged to the console after clicking the button twice?
medium
A. 'Rendered with count: 1' then 'Rendered with count: 2'
B. 'Rendered with count: 0' only once
C. 'Rendered with count: 2' only once
D. No logs will appear

Solution

  1. Step 1: Understand useEffect without dependencies

    Without a dependency array, useEffect runs after every render.
  2. Step 2: Trace state changes on clicks

    Initial count is 0. Clicking once sets count to 1, triggering a render and logging 'Rendered with count: 1'. Clicking again sets count to 2, triggering another render and logging 'Rendered with count: 2'.
  3. Final Answer:

    'Rendered with count: 1' then 'Rendered with count: 2' -> Option A
  4. Quick Check:

    State updates cause re-render and useEffect logs each time = A [OK]
Hint: useEffect without deps runs after every render [OK]
Common Mistakes:
  • Thinking useEffect runs only once
  • Assuming logs show initial state only
  • Ignoring that state updates cause re-renders
4. What is wrong with this React code snippet?
function Example() {
  const [value, setValue] = React.useState(0);
  function update() {
    value = value + 1;
  }
  return Increase;
}
medium
A. useState hook is used incorrectly; it needs two arguments.
B. Directly assigning to state variable does not update state or trigger re-render.
C. The function update should be async to update state.
D. The button should use onChange instead of onClick.

Solution

  1. Step 1: Identify how state is updated

    State variables from useState are read-only. Direct assignment like value = value + 1 does not update React state.
  2. Step 2: Understand correct state update method

    State must be updated using the setter function setValue to trigger re-render.
  3. Final Answer:

    Directly assigning to state variable does not update state or trigger re-render. -> Option B
  4. Quick Check:

    State updates require setter function = C [OK]
Hint: Never assign state variable directly; use setter function [OK]
Common Mistakes:
  • Assigning state variable directly
  • Confusing event handlers like onChange vs onClick
  • Thinking useState needs two arguments
5. You have a parent component that renders a child component. The parent updates its state with setParentState. Which components re-render when the parent's state changes?
hard
A. Only the child component re-renders; the parent does not.
B. Only the parent component re-renders; the child does not.
C. Both the parent and child components re-render.
D. Neither component re-renders automatically.

Solution

  1. Step 1: Understand React's re-render on state change

    When a parent component's state changes, React re-renders that parent component.
  2. Step 2: Know child component rendering behavior

    Since the child is rendered inside the parent, React also re-renders the child unless memoization or other optimizations are used.
  3. Final Answer:

    Both the parent and child components re-render. -> Option C
  4. Quick Check:

    Parent state change re-renders parent and children = A [OK]
Hint: Parent state change re-renders parent and children by default [OK]
Common Mistakes:
  • Thinking child won't re-render automatically
  • Assuming only child re-renders
  • Believing no re-render happens without explicit calls
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