In my opinion mutable state is most often better than immutable state. In JavaScript, that is, I have a different opinion on the JVM.
The important point is that the state is _serializable_, meaning it doesn't contain side-effects. That also means NetworkRequests must be replayable.
If your state is serializable, you get immutability out of the box by serializing everthing to JSON and back again.
MobX makes it very easy to do that inspection between states.
Don't look at mutable state as evil. Redux state is mutable too.