I have encountered this issue on many places after some days of updating from Angular 8 to Angular 9. Earlier it was working fine.
Can anyone help me what's the problem. Example code below
list.reduce((acc, curr) => {
const obj = {};
obj['x'] = curr['Y'];
});
To fix this error, you will either need to remove the call to Object. preventExtensions() entirely, or move it to a position so that the property is added earlier and only later the object is marked as non-extensible. Of course you can also remove the property that was attempted to be added, if you don't need it.
There is no way to make an object extensible again once it has been made non-extensible. It is important to note that Object. preventExtensions only prevents the extension of the top level of the object. In the example above, person.
If you are getting this error after using NgRx in Angular. Try implementing below code it will help on a global level. Otherwise you can utilize deep cloning of Object or Array to eradicate the problem.
@NgModule({
imports: [
StoreModule.forRoot(reducers, {
runtimeChecks: {
strictStateImmutability: false,
strictActionImmutability: false,
},
}),
],
})
export class AppModule {}
I refer change list of Ngrx version 8 to 9 and migration guideline here
https://ngrx.io/guide/migration/v9
As I found there is a special change related to immutability with angular 9. They have defined Action, state and serializability related immutability logic there. And I tried out the method that they have suggested to resolve those issues with Ngrx V9 update here
https://ngrx.io/guide/store/configuration/runtime-checks
@ngrx/store
ships with five (5) built-in runtime checks. Try disabled all checks
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With