Sometimes mutation of state doesn't change anything.
Because of referential equality
React compare two state and if there is change, re render page
At this time react use Object.is() method
As you can see, Object.is() don't compare 'value'. but the referencial equality!
So even if you declare 'a' as list, assign 'a' to b and update the value,
Object.is(a,b) return 'true'. so that react doesn't re render page.
SO REMEMBER
When updates state in react, always use assign not mutation