In the previous article, I discussed a common but dangerous oversimplification:

Async work should not be reduced to Promise.resolve() followed by setState().

The real problem is not that setState() is inherently wrong. The problem is that we often treat every asynchronous result as if it were the same kind of thing.

API request completed → write to state

Form submitted successfully → write to state