This React component shows a simple email subscription form. It updates the input as you type, prevents page reload on submit, shows a thank you message, and clears the input.
B. The paragraph shows 'Hello, Hi!' as user types 'Hi'
C. The paragraph remains empty regardless of input
D. The input clears automatically after typing
Solution
Step 1: Understand controlled input behavior
The input value is controlled by state variable 'name' which updates on change.
Step 2: Observe paragraph rendering with state
The paragraph displays 'Hello, {name}!' so it updates live as 'name' changes.
Final Answer:
The paragraph shows 'Hello, Hi!' as user types 'Hi' -> Option B
Quick Check:
Controlled input updates state and display = D [OK]
Hint: Controlled inputs update state and display live [OK]
Common Mistakes:
Expecting input to clear automatically
Thinking paragraph won't update
Assuming page reloads on input change
4. Identify the error in this React form submission handler:
function handleSubmit(e) {
alert('Submitted');
}
What is missing to prevent the page from reloading on submit?
medium
A. Call e.preventDefault() inside handleSubmit
B. Use return false at the end of handleSubmit
C. Wrap alert in a setTimeout function
D. No error, the code works fine
Solution
Step 1: Understand default form submit behavior
By default, form submission reloads the page unless prevented.
Step 2: Prevent default reload in React
Calling e.preventDefault() inside the submit handler stops the reload.
Final Answer:
Call e.preventDefault() inside handleSubmit -> Option A
Quick Check:
Use e.preventDefault() to stop reload [OK]
Hint: Always call e.preventDefault() in submit handlers [OK]
Common Mistakes:
Forgetting to pass event parameter e
Using return false instead of preventDefault
Assuming alert stops reload
5. You want to handle multiple input fields in one React form using a single state object. Which code snippet correctly updates the state for the changed input field?
const [formData, setFormData] = React.useState({ email: '', password: '' });
function handleChange(e) {
// What goes here?
}
hard
A. setFormData({ e.target.name: e.target.value });
B. setFormData({ formData[e.target.name]: e.target.value });
C. setFormData({ ...formData, [e.target.name]: e.target.value });
D. setFormData({ [e.target.value]: e.target.name });
Solution
Step 1: Understand updating nested state objects
To update one field in an object state, copy existing fields with spread operator.
Step 2: Use computed property name for dynamic key
Use [e.target.name] to dynamically update the correct field with new value.
Final Answer:
setFormData({ ...formData, [e.target.name]: e.target.value }); -> Option C
Quick Check:
Spread old state + dynamic key update = B [OK]
Hint: Use spread and [e.target.name] to update form object state [OK]
Common Mistakes:
Overwriting entire state without spreading
Using invalid object key syntax
Swapping name and value in update
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.