Yes it can be easily manipulated. Check out the "Application" tab in your browsers DevTools. Depending if you store it in LocalStorage or SessionStorage you can find a JSON-object which is representing the whole storage object. You can also edit or delete it. You can try to add some middleware to the store to sign the current state, but the whole signing and verification code has to be shipped to client and will be executed there. So this will just make things harder for attackers but not impossible. You can do it without the storages and save it to RAM but then the store will be gone when the user refreshes the page.
However on backend site treat every client as liar and doublecheck any authentication/authorization information. In frontend you can split between normal application data and security information. Security related information can be reloaded on every page refresh, but the server response can be manipulated too. So it may be signed with some RSA Public/Privatekey to be save. You can then store this information inside a React Context
and provide it to every component.
The normal application data can remain inside the Redux store and used the normal way.