Bird
Raised Fist0
Reactframework~10 mins

State vs props comparison in React - Interactive 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 using React hooks.

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

Complete the code to pass a prop named 'title' with value 'Hello' to a component.

React
<MyComponent [1]="Hello" />
Drag options to blanks, or click blank then click option'
Astate
Bvalue
CsetTitle
Dtitle
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'state' or 'setTitle' as prop names incorrectly.
Confusing props with state variables.
3fill in blank
hard

Fix the error in accessing a prop inside a functional component.

React
function Greeting([1]) {
  return <h1>{props.name}</h1>;
}
Drag options to blanks, or click blank then click option'
Aprops
Bstate
Cname
DsetName
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'state' instead of 'props' as the function parameter.
Trying to access props without declaring them.
4fill in blank
hard

Fill both blanks to create a state variable and update it on button click.

React
const [[1], [2]] = useState(0);
Drag options to blanks, or click blank then click option'
Acount
BsetCount
Cvalue
DsetValue
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping the state variable and updater names.
Using unrelated names that don't follow the convention.
5fill in blank
hard

Fill all three blanks to create a component that receives a prop and uses state to toggle a message.

React
function Message([1]) {
  const [[2], [3]] = useState(true);
  return (
    <div>
      <h1>{show ? text : ''}</h1>
      <button onClick={() => setShow(!show)}>Toggle</button>
    </div>
  );
}
Drag options to blanks, or click blank then click option'
Atext
Bshow
CsetShow
Dtoggle
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong names for props or state variables.
Not matching the updater function name with the state variable.

Practice

(1/5)
1. Which of the following best describes the difference between state and props in React?
easy
A. Props can change inside a component; state is fixed.
B. State is internal and can change; props are external and read-only.
C. State and props are both used to pass data from parent to child.
D. Props are used only for styling; state holds all data.

Solution

  1. Step 1: Understand what state is

    State is data managed inside a component that can change over time.
  2. Step 2: Understand what props are

    Props are data passed from a parent component to a child component and cannot be changed by the child.
  3. Final Answer:

    State is internal and can change; props are external and read-only. -> Option B
  4. Quick Check:

    State changes internally, props are read-only from parent [OK]
Hint: State changes inside; props come from outside [OK]
Common Mistakes:
  • Thinking props can be changed inside the child component
  • Confusing state as data passed from parent
  • Believing props hold styling only
2. Which of the following is the correct way to pass a prop named title with value "Hello" to a child component Header?
easy
A. <Header title="Hello" />
B. <Header {title: "Hello"} />
C. <Header title={Hello} />
D. <Header title: "Hello" />

Solution

  1. Step 1: Recall JSX syntax for passing props

    Props are passed as attributes inside the component tag, like HTML attributes.
  2. Step 2: Check correct syntax for string prop

    Use quotes around string values: title="Hello".
  3. Final Answer:

    <Header title="Hello" /> -> Option A
  4. Quick Check:

    Props use attribute syntax with quotes for strings [OK]
Hint: Use attribute="value" syntax for string props [OK]
Common Mistakes:
  • Using curly braces without variable for string
  • Using object-like syntax inside JSX tag
  • Using colon instead of equals sign
3. Consider this React component code:
function Counter({ initial }) {
  const [count, setCount] = React.useState(initial);
  return <div>Count: {count}</div>;
}

// Usage:
<Counter initial={5} />

What will be displayed when this component renders?
medium
A. Count: 0
B. Count: undefined
C. Count: 5
D. Count: initial

Solution

  1. Step 1: Understand prop usage

    The prop initial is passed with value 5 to the Counter component.
  2. Step 2: Understand state initialization

    The state count is initialized with initial, so count starts at 5.
  3. Final Answer:

    Count: 5 -> Option C
  4. Quick Check:

    State initialized from prop value 5 [OK]
Hint: State starts with prop value passed in [OK]
Common Mistakes:
  • Assuming state starts at 0 by default
  • Printing the prop name instead of value
  • Confusing undefined with missing prop
4. What is wrong with this React component code?
function Message(props) {
  props.text = "Hello";
  return <div>{props.text}</div>;
}
medium
A. You cannot assign a new value to props inside a component.
B. The return statement is missing parentheses.
C. The component should use state instead of props.
D. The component must be a class to modify props.

Solution

  1. Step 1: Understand props immutability

    Props are read-only and cannot be changed inside the component.
  2. Step 2: Identify the error in code

    Assigning props.text = "Hello" tries to modify props, which is not allowed.
  3. Final Answer:

    You cannot assign a new value to props inside a component. -> Option A
  4. Quick Check:

    Props are immutable inside components [OK]
Hint: Props are read-only; never assign to them [OK]
Common Mistakes:
  • Trying to change props directly
  • Confusing props with state
  • Thinking only class components can modify props
5. You want a component to display a counter that starts from a value passed by its parent and can be incremented by the user. Which approach correctly uses state and props?
hard
A. Modify the prop value directly when user clicks increment.
B. Keep counter value only in props and pass updated props from child to parent.
C. Use props only and update them inside the component.
D. Initialize state with the prop value; update state on user action; do not modify props.

Solution

  1. Step 1: Understand data flow

    Props provide initial data from parent; state holds data that changes inside the component.
  2. Step 2: Apply correct usage

    Initialize state with prop value, then update state on user actions. Props remain unchanged.
  3. Final Answer:

    Initialize state with the prop value; update state on user action; do not modify props. -> Option D
  4. Quick Check:

    State changes internally; props stay read-only [OK]
Hint: Use props for initial value, state for changes [OK]
Common Mistakes:
  • Trying to change props directly
  • Using props to hold changing data
  • Passing updated data from child to parent incorrectly
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