In a functional component, the state is never mutated, instead in a new render, the hooks return different (and updated) values. In class based components however, React itself mutates the this keyword to update the props and state according to the correct behaviour.