-
Notifications
You must be signed in to change notification settings - Fork 177
Open
Description
Q53 :- What is the output of the following code snippet when the "Click me" button is clicked twice?
function App() {
const [count, setCount] = React.useState(0);
return (
You clicked {count} times
<button onClick={() => setCount(count + 1)}>Click me
);
}
Right Ans : -
Each time the button is clicked:
- The event handler runs:
setCount(count + 1). - React schedules a re-render with the updated state.
- However, the state update is not immediate. The value of
countinside the event handler is the value from the last render. - Since
countdoes not update synchronously, clicking twice in quick succession causes both clicks to use the old stale state value.
Step-by-step breakdown:
| Click # | Current count | Expression (setCount(count + 1)) |
Updated count |
|---|---|---|---|
| 0 (initial) | 0 | - | 0 |
| 1st Click | 0 | setCount(0 + 1) |
1 |
| 2nd Click | 0 (stale) | setCount(0 + 1) |
1 (not 2!) |
Thus, after two clicks, count will be 1 instead of 2.
Metadata
Metadata
Assignees
Labels
No labels