Mutating the state
React comes with a very clear and straightforward API to mutate the internal state of components. Using the setState
function, we can tell the library how we want the state to be changed. As soon as the state is updated, React re-renders the component and we can access the new state through the this.state
property. That's it.
Sometimes, however, we could make the mistake of mutating the state object directly, leading to dangerous consequences for the component's consistency and performance.
First of all, if we mutate the state without using setState
, two bad things can happen:
- The state changes without making the component re-render
- Whenever
setState
gets called in future, the mutated state gets applied
If we go back to the counter example and change the click handler to:
handleClick() { this.state.count++ }
We can see how clicking + does not affect the rendered value in the browser but, if we look into the component using the React Developer Tools, the value...