Two reasons: 1) in the correct Redux application, you should never try to directly mutate the state, so the result of getState() should be used only through getters, so there is no need to waste time and cycles on copying; 2) in fact, it is not so easy to copy it in the right way. To quote an appropriate discussion of the related issue :
You will need to assign a deep object to really destroy all the links, and we would not want to do this, since you could not compare if some part of your state tree has changed, which is incredibly useful in React via mustComponentUpdate.
However, it can be decided that it is useful to use Object.freeze() on the restored state as protection (against mutating such an object elsewhere). However, passing the resulting state too much is rarely a good picture (as mentioned in this answer ).
source share