You bind all the transformations on your UI to a single object. All stuff that happens on the UI is a consequence of a transformation on that object.
You just gained undo/redo, if you track alterations on your object.
You know the state of your application at all times, just looking at the object. You can also keep it and save it for later use.
OwnPops is something your component receives from the parent. StateProps is something your component receives from the Redux store.
In the app a user activity generates an event. The event handler calls the dispatch() function that is sending the current state and an action (object) to the rootReducer(). The action object contains the relevant data for the requested change of state slice. The rootReducer() will interpret the action.type, process the data and generate a new state. After the store has received the new state, it triggers the re-render of the React Redux app. It also triggers the execution of all listener functions that are registered with the subscribe() method to the store. Furthermore, all components that are subscribed with connect(mapStateToProps) to the store now receive the new state data as defined in mapStateToProps().
Redux Persist - Persist and rehydrate a Redux store.