State lets a component remember a value between renders. Updating it asks React to render the next screen; changing an ordinary local variable doesn't have the same effect. When the next value depends on the current one, a functional update makes that relationship explicit. It also matters when one event queues more than one update, because each updater receives the result of the previous one. You'll build repeated counters, independent component instances, and a disclosure whose visible state agrees with aria-expanded. Check the lower boundary and the second interaction. Those cases expose stale values and one-way toggles that a single click can hide.