-
Notifications
You must be signed in to change notification settings - Fork 195
Deeply nested object was detected
jamesjryan edited this page Oct 4, 2017
·
4 revisions
Have you got the following error?
Attempt to construct Immutable from a deeply nested object was detected. Have you tried to wrap an object with circular references (e.g. React element)?
It usually happens when seamless-immutable tries to wrap an object with circular references, like React element. For example:
Immutable([1,2,3]).map(function() { return <div /> })
We catch this problem to prevent JavaScript engine from slowing down browser tab and ultimately failing with stack overflow. We do it only during development. Production build doesn't have this protection.
There are several alternative ways to fix the problem:
- Replace builtin
map
method with lodash/underscoremap
:_.map(Immutable([1,2,3]), function() { return <div /> })
- Call
asMutable
before callingmap
:Immutable([1,2,3]).asMutable().map(function() { return <div /> })
.
Increase maximum stack depth by passing it as a third argument to Immutable
. For example: Immutable(deepObject, null, 256)
. Default maximum stack depth is 64
.