You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It seems like some unexpected behaviors can happen when using deep objects in an effect state. I have an array of nested objects in an effect definition. Once the effect is activated, it starts editing / rearranging though nested objects.
If multiple copies of the effect are created later, the state of the deep objects that are edited is copied over to the new effects. So it seems to me that the weird part is actually that the definition of the effect is being rewritten.
I ended up working around it for the moment by creating a deep copy of the original nested objected before working on them within the effect.
Yeah the workaround for this is to put that exact line of code into the effect's effectAdded listener. A possible core fix for this would be to add this.state = JSON.parse(JSON.stringify(this.state)); to EffectList#add so that as soon as an effect is added to an entity it gets its own copy of state
It seems like some unexpected behaviors can happen when using deep objects in an effect state. I have an array of nested objects in an effect definition. Once the effect is activated, it starts editing / rearranging though nested objects.
If multiple copies of the effect are created later, the state of the deep objects that are edited is copied over to the new effects. So it seems to me that the weird part is actually that the definition of the effect is being rewritten.
I ended up working around it for the moment by creating a deep copy of the original nested objected before working on them within the effect.
this.state.messageList = JSON.parse(JSON.stringify(this.state.messageListOriginal));
But thought I'd post about it to hear any thoughts from everyone.
The text was updated successfully, but these errors were encountered: