Bird
Raised Fist0
Reactframework~10 mins

Multiple state variables in React - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a state variable named count with initial value 0.

React
const [count, setCount] = [1](0);
Drag options to blanks, or click blank then click option'
AuseState
BuseEffect
CuseRef
DuseContext
Attempts:
3 left
💡 Hint
Common Mistakes
Using useEffect instead of useState
Trying to declare state without a hook
Confusing useRef with useState
2fill in blank
medium

Complete the code to declare a second state variable named name with initial value an empty string.

React
const [name, setName] = [1]('');
Drag options to blanks, or click blank then click option'
AuseEffect
BuseMemo
CuseCallback
DuseState
Attempts:
3 left
💡 Hint
Common Mistakes
Using useEffect or useMemo instead of useState
Not providing an initial value
3fill in blank
hard

Fix the error in the code to update the count state variable by adding 1.

React
setCount([1] + 1);
Drag options to blanks, or click blank then click option'
AsetCount
Bcount
Ccount()
DCount
Attempts:
3 left
💡 Hint
Common Mistakes
Trying to call count as a function
Using setCount inside itself incorrectly
Using wrong capitalization
4fill in blank
hard

Fill both blanks to declare two state variables: age starting at 25 and city starting as 'NYC'.

React
const [age, setAge] = [1](25);
const [city, setCity] = [2]('NYC');
Drag options to blanks, or click blank then click option'
AuseState
BuseEffect
CuseRef
DuseContext
Attempts:
3 left
💡 Hint
Common Mistakes
Using different hooks for each variable
Confusing useEffect with useState
5fill in blank
hard

Fill all three blanks to create a component with two state variables and a button that updates count by 1 when clicked.

React
import React, { [1], [2] } from 'react';

function Counter() {
  const [count, setCount] = [3](0);

  return (
    <button onClick={() => setCount(count + 1)} aria-label="Increment count">
      Count: {count}
    </button>
  );
}
Drag options to blanks, or click blank then click option'
AuseState
BuseEffect
DuseRef
Attempts:
3 left
💡 Hint
Common Mistakes
Not importing useState
Using useRef instead of useState for count
Forgetting to update count on button click

Practice

(1/5)
1. In React, why would you use multiple state variables instead of one single state object?
easy
A. To keep different pieces of data separate and update them independently.
B. Because React only allows one state variable per component.
C. To make the component slower and harder to read.
D. To avoid using setter functions.

Solution

  1. Step 1: Understand state separation

    Multiple state variables let you store different data separately, making updates easier and clearer.
  2. Step 2: Recognize React's flexibility

    React allows many state variables, each with its own setter, improving organization and readability.
  3. Final Answer:

    To keep different pieces of data separate and update them independently. -> Option A
  4. Quick Check:

    Separate state variables = easier updates [OK]
Hint: Multiple states mean clearer, independent updates [OK]
Common Mistakes:
  • Thinking React limits to one state variable
  • Believing multiple states slow down components
  • Confusing state variables with props
2. Which of the following is the correct way to declare two separate state variables in a React functional component?
easy
A. const [count, setCount] = useState(0); const [name, setName] = useState('');
B. const state = useState({count: 0, name: ''});
C. const count = useState(0); const name = useState('');
D. useState(count, 0); useState(name, '');

Solution

  1. Step 1: Check syntax for multiple states

    Each state variable uses its own useState call with array destructuring for value and setter.
  2. Step 2: Compare options

    const [count, setCount] = useState(0); const [name, setName] = useState(''); correctly declares two separate states with their setters. Others misuse useState or syntax.
  3. Final Answer:

    const [count, setCount] = useState(0); const [name, setName] = useState(''); -> Option A
  4. Quick Check:

    Separate useState calls = correct syntax [OK]
Hint: Use separate useState calls with array destructuring [OK]
Common Mistakes:
  • Trying to declare multiple states in one useState call without destructuring
  • Missing setter functions
  • Incorrect useState syntax
3. What will be the output of this React component when the button is clicked once?
import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);
  const [text, setText] = useState('Hello');

  function handleClick() {
    setCount(count + 1);
    setText(text + '!');
  }

  return (
    <div>
      <p>Count: {count}</p>
      <p>Text: {text}</p>
      <button onClick={handleClick}>Click</button>
    </div>
  );
}
medium
A. Count: 0 and Text: Hello
B. Count: 0 and Text: Hello!
C. Count: 1 and Text: Hello!
D. Count: 1 and Text: Hello

Solution

  1. Step 1: Understand state updates on click

    Clicking the button calls handleClick, which increments count by 1 and adds '!' to text.
  2. Step 2: Check initial values and updates

    Initial count is 0, text is 'Hello'. After one click, count becomes 1, text becomes 'Hello!'.
  3. Final Answer:

    Count: 1 and Text: Hello! -> Option C
  4. Quick Check:

    State updates reflect in UI after click [OK]
Hint: Each setter updates its own state independently [OK]
Common Mistakes:
  • Assuming states update asynchronously and show old values immediately
  • Forgetting to update both states
  • Mixing up initial and updated values
4. Identify the error in this React component using multiple state variables:
import React, { useState } from 'react';

function Example() {
  const [count, setCount] = useState(0);
  const [name, setName] = useState('');

  function update() {
    setCount(count + 1);
    setName = 'John';
  }

  return <button onClick={update}>Update</button>;
}
medium
A. Missing import of useState from React.
B. Not initializing count with a string.
C. Using semicolon after return statement.
D. Incorrect assignment to setName instead of calling it as a function.

Solution

  1. Step 1: Check how state setters are used

    State setters like setName must be called as functions, e.g., setName('John').
  2. Step 2: Identify the error in update function

    The code uses assignment setName = 'John' instead of calling setName('John'), which is incorrect.
  3. Final Answer:

    Incorrect assignment to setName instead of calling it as a function. -> Option D
  4. Quick Check:

    State setters must be called, not assigned [OK]
Hint: Call setters as functions, never assign them [OK]
Common Mistakes:
  • Assigning value to setter instead of calling it
  • Forgetting to import useState
  • Misusing return syntax
5. You want to track a user's first name, last name, and age separately in a React component. Which approach best uses multiple state variables to keep the component organized and easy to update?
hard
A. Use one useState call with an object containing first name, last name, and age.
B. Use three separate useState calls: one for first name, one for last name, and one for age.
C. Use one useState call with an array containing first name, last name, and age.
D. Use three variables without useState since they don't change.

Solution

  1. Step 1: Consider state clarity and updates

    Using separate state variables for each piece of data allows independent updates and clearer code.
  2. Step 2: Compare with other options

    Use one useState call with an object containing first name, last name, and age. groups data but requires careful merging on updates. Use one useState call with an array containing first name, last name, and age. uses array which is less clear. Use three variables without useState since they don't change. ignores state management.
  3. Final Answer:

    Use three separate useState calls: one for first name, one for last name, and one for age. -> Option B
  4. Quick Check:

    Separate states = easier updates and clarity [OK]
Hint: Separate states for separate data pieces [OK]
Common Mistakes:
  • Using one object state and forgetting to merge updates
  • Using arrays for unrelated data
  • Not using state for changing data
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