diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java index 7d08bd08ec6..018fa5ddace 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java @@ -164,22 +164,32 @@ public class ReactShadowNodeImpl implements ReactShadowNode @Override public ReactShadowNodeImpl mutableCopy() { ReactShadowNodeImpl copy = copy(); - copy.mYogaNode = mYogaNode.clone(); + if (mYogaNode != null) { + copy.mYogaNode = mYogaNode.clone(); + copy.mYogaNode.setData(copy); + } else { + // Virtual ReactShadowNode do not have a YogaNode associated + copy.mYogaNode = null; + } copy.mNativeChildren = mNativeChildren == null ? null : new ArrayList<>(mNativeChildren); copy.mTotalNativeChildren = mTotalNativeChildren; copy.mChildren = mChildren == null ? null : new ArrayList<>(mChildren); - copy.mYogaNode.setData(copy); return copy; } @Override public ReactShadowNodeImpl mutableCopyWithNewChildren() { ReactShadowNodeImpl copy = copy(); - copy.mYogaNode = mYogaNode.cloneWithNewChildren(); + if (mYogaNode != null) { + copy.mYogaNode = mYogaNode.cloneWithNewChildren(); + copy.mYogaNode.setData(copy); + } else { + // Virtual ReactShadowNode do not have a YogaNode associated + copy.mYogaNode = null; + } copy.mNativeChildren = null; copy.mChildren = null; copy.mTotalNativeChildren = 0; - copy.mYogaNode.setData(copy); return copy; }