TypeError: Cannot assign to read only property 'x' of object '#<Object>' React/JEST
There is a way to accomplish that;
Create a "clone" of your object with Object.assign() method, or JavaScript spread operator
let clone = Object.assign({}, this.props);
or
let clone = { ...this.props };
Then, change the values you need and return the clone as a result.
let clone = Object.assign({}, this.props);clone.defaultForm = true;return clone;
But take into account that Object.assign() creates a shallow copy of an object. Thus, if you need to have a deep copy, I would recommend to use following approach:
let deepClone = JSON.parse(JSON.stringify(this.props));deepClone.defaultForm = true;return deepClone;
Here, "stringifying" the object and then parsing it back will create completely new deeply cloned copy of the object.
You cannot change the properties of a component. it is in read only.
If you want to can change it. You must use connect
from redux
and the function mapStateToProps
.
You can find more information here: https://redux.js.org/basics/usage-with-react#implementing-container-components